【问题标题】:Split column with data.frames into multiple rows [duplicate]将带有data.frames的列拆分为多行[重复]
【发布时间】:2017-07-21 10:24:06
【问题描述】:

我有一个 data.frame,其中一列包含 data.frames。

data <- data.frame(ID = c(1,2))
data$DF <- list(data.frame(x = c(1,2), y = c(3,5)), data.frame(x = c(1,2,3), y = c(3,5,7)))
data
ID      DF
1       1, 2, 3, 5
2       1, 2, 3, 3, 5, 7

我想将此数据拆分为长格式。

ID      DF.x     DF.y
1       1        3
1       2        5
2       1        3  
2       2        5
2       3        7

有没有简单的方法可以做到这一点?

【问题讨论】:

  • 您可以使用来自tidyrunnestunnest(data) 或与base R cbind(ID = rep(data$ID, sapply(data$DF, nrow)), do.call(rbind, data$DF)) 一起使用
  • 谢谢,这很容易:D
  • 您应该将其添加为答案。
  • 谢谢你,我作为答案发布了

标签: r dataframe split


【解决方案1】:

我们可以从tidyr使用unnest

library(tidyr)
unnest(data)

或者base R 选项将是

cbind(ID = rep(data$ID, sapply(data$DF, nrow)), do.call(rbind, data$DF))

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 2017-04-25
    • 2016-04-15
    • 2016-08-09
    • 2015-07-28
    • 2018-10-17
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    相关资源
    最近更新 更多