【问题标题】:R normalize a datasetR规范化数据集
【发布时间】:2023-03-26 02:27:01
【问题描述】:

我有一个看起来像这样的数据集

> dput(events.seq)
structure(list(vid = structure(1L, .Label = "2a38ebc2-dd97-43c8-9726-59c247854df5", class = "factor"), 
    deltas = structure(1L, .Label = "38479,38488,38492,38775,45595,45602,45606,45987,50280,50285,50288,50646,54995,55001,55005,55317,59528,59533,59537,59921,63392,63403,63408,63822,66706,66710,66716,67002,73750,73755,73759,74158,77999,78003,78006,78076,81360,81367,81371,82381,93365,93370,93374,93872,154875,154878,154880,154880,155866,155870", class = "factor"), 
    events = structure(1L, .Label = "mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown,mouseup,click,mousemove,mousedown", class = "factor")), .Names = c("vid", 
"deltas", "events"), class = "data.frame", row.names = c(NA, 
-1L))

我需要将它规范化为这个结构:

> dput(test)
structure(list(vid = structure(c(1L, 1L, 1L), .Label = "2a38ebc2-dd97-43c8-9726-59c247854df5\n+ ", class = "factor"), 
    delta = c(38479, 38488, 38492), c..mousemove....mousedown....mousup.. = structure(c(2L, 
    1L, 3L), .Label = c("mousedown", "mousemove", "mousup"), class = "factor")), .Names = c("vid", 
"delta", "c..mousemove....mousedown....mousup.."), row.names = c(NA, 
-3L), class = "data.frame")

任何帮助表示赞赏。 我确实尝试使用 strplit,问题是我想在第二列和第三列上同时拆分两次(它们的长度总是同步)

【问题讨论】:

    标签: r normalize melt


    【解决方案1】:

    试试这个:

    z <- with(x, data.frame(
      deltas = strsplit(as.character(deltas), split = ",")[[1]],
      events = strsplit(as.character(events), ",")[[1]]
    ))
    head(z)
    

    结果:

      deltas    events
    1  38479 mousemove
    2  38488 mousedown
    3  38492   mouseup
    4  38775     click
    5  45595 mousemove
    6  45602 mousedown
    

    【讨论】:

    • 我也需要 vid 所以我添加了这一行: z
    • 顺便说一句,@Andrie - 你为什么添加 [[1]] ?将解析限制为仅 df 中的第一行
    猜你喜欢
    • 2015-12-08
    • 2010-10-06
    • 2014-07-07
    • 2017-06-06
    • 2014-09-06
    • 2020-07-09
    • 2014-12-23
    • 2015-08-21
    相关资源
    最近更新 更多