R - 拆分列表和marge相同的表

时间:2018-01-07 16:58:49

标签: r

对不起,标题可能描述不错

我有一个数据框格式谷歌历史记录

原始

> head(testAC)
  latitudeE7 longitudeE7                       activity
1  247915291  1209946249                         NULL
2  248033293  1209803613                         NULL
3  248033293  1209803613         1505536182769, IN_VEHICLE, STILL, UNKNOWN, 54, 31, 15

结果

> head(testAC)
  latitudeE7|longitudeE7| activityTime|mainactivity| speed
1  247915291| 1209946249|             |    NULL    |
2  248033293| 1209803613|             |    NULL    |
3  248033293| 1209803613|1505536182769| IN_VEHICLE |   54
4  248033293| 1209803613|1505536182769|    STILL   |   31
5  248033293| 1209803613|1505536182769|   UNKNOWN  |   15

原始行3,成为结果3到5行

我只知道do.call(" rbind",testAC $ activity),

但是只是分裂了活动,纬度E7和经度E7消失了

> do.call ("rbind", testAC$activity)
    timestampMs                activity
1 1505536182769       IN_VEHICLE, STILL, UNKNOWN, 54, 31, 15
2 1505536077547   IN_VEHICLE, UNKNOWN, ON_BICYCLE, STILL, 64, 23, 8, 5

我找了两天,但可能没有关键字,找不到

任何人都可以解释如何做我想做的事吗?

谢谢

我在Google云端硬盘上上传了一个Rdata,或许可以了解更多信息 google drive

1 个答案:

答案 0 :(得分:1)

这个怎么样:

library(plyr)
cbind(dataAC[, 1:2], ldply(lapply(dataAC$activity, function(x) if (!is.null(x)) unlist(lapply(x, unlist)) else NA), rbind))

它会为您提供数据帧而不是嵌套列表,然后您可以随心所欲地重塑它

  latitudeE7 longitudeE7    1   timestampMs activity.type1 activity.type2 activity.type3 activity.confidence1 activity.confidence2
1  247915291  1209946249 <NA>          <NA>           <NA>           <NA>           <NA>                 <NA>                 <NA>
2  248033293  1209803613 <NA>          <NA>           <NA>           <NA>           <NA>                 <NA>                 <NA>
3  248033293  1209803613 <NA> 1505536182769     IN_VEHICLE          STILL        UNKNOWN                   54                   31
4  248002555  1209895254 <NA> 1505536077547     IN_VEHICLE        UNKNOWN     ON_BICYCLE                   64                   23
5  247966714  1209957315 <NA> 1505535932508     IN_VEHICLE     ON_BICYCLE           <NA>                   54                   46
6  247966714  1209957315 <NA> 1505535825664           <NA>           <NA>           <NA>                 <NA>                 <NA>
  activity.confidence3 activity.type4 activity.confidence4 activity.type activity.confidence
1                 <NA>           <NA>                 <NA>          <NA>                <NA>
2                 <NA>           <NA>                 <NA>          <NA>                <NA>
3                   15           <NA>                 <NA>          <NA>                <NA>
4                    8          STILL                    5          <NA>                <NA>
5                 <NA>           <NA>                 <NA>          <NA>                <NA>
6                 <NA>           <NA>                 <NA>       TILTING                 100