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