R 转换和整理嵌套数据帧
我有一个包含嵌套数据框列的数据框。结构如下:R 转换和整理嵌套数据帧,r,dataframe,R,Dataframe,我有一个包含嵌套数据框列的数据框。结构如下: 'data.frame': 2 obs. of 3 variables: $ id : chr "001" "002" $ name : chr "a" "b" $ nestedList:List of 2 ..$ :'data.frame': 3 obs. of 3 variables: .. ..$ val1: num 100 101 102 .. ..$ val2: num 200
'data.frame': 2 obs. of 3 variables:
$ id : chr "001" "002"
$ name : chr "a" "b"
$ nestedList:List of 2
..$ :'data.frame': 3 obs. of 3 variables:
.. ..$ val1: num 100 101 102
.. ..$ val2: num 200 201 202
.. ..$ val3: num 300 301 302
..$ :'data.frame': 2 obs. of 3 variables:
.. ..$ val1: num 1000 1001
.. ..$ val2: num 2000 2001
.. ..$ val3: num 3000 3001
可以使用以下代码重新创建它:
myNestedDataFrame <- data.frame(id = c("001", "002"), name = c("a", "b"), stringsAsFactors = FALSE)
myNestedDataFrame$nestedList[[1]] <- data.frame(val1 = c(100, 101, 102), val2 = c(200, 201, 202), val3 = c(300, 301, 302))
myNestedDataFrame$nestedList[[2]] <- data.frame(val1 = c(1000, 1001), val2 = c(2000, 2001), val3 = c(3000, 3001))
我已经能够使用一系列复杂的循环和连接来实现这一点,但我不得不认为有一种更优雅的解决方案使用apply或mapping函数。任何帮助都将不胜感激
tidyr::unnest(myNestedDataFrame)
在base中,可能是do.call(rbind,lappy(split(myNestedDataFrame,seq(nrow(myNestedDataFrame))),function(x){data.frame(x[-3],x[[3]],row.names=NULL)}
alistaire,感谢您的快速回复。这两个都达到了我一直在寻找的目标。
id name val1 val2 val3
1 001 a 100 200 300
2 001 a 101 201 301
3 001 a 102 203 302
4 002 b 1000 2000 3000
5 002 b 1001 2001 3001