数据帧列表的R数据帧

时间:2017-06-14 08:44:20

标签: r mongodb dataframe

我使用R来使用mongolite从mongo集合中读取一些数据。 理想情况下,我想创建一个数据框,但数据结构证明太难了(由于mongo doc中的嵌入对象)。

我将数据导入R后str()为:

List of 9
 $ :'data.frame':   4 obs. of  6 variables:
      ..$ QS                : num  488 132 186 905
      ..$ datasection1:'data.frame':    4 obs. of  20 variables:
      .. ..$ field1   : int  8 9 15 7
      .. ..$ field2      : chr  "WH" "WH" "WH" "WH"
      ..$ datasection2      :'data.frame':  4 obs. of  12 variables:
      .. ..$ field3: int  8 9 15 7
      .. ..$ field4   : chr  "wh" "wh" "wh" "wh"
      .. ..$ datasection2a:List of 4
      .. .. ..$ :'data.frame':  3 obs. of  2 variables:
      .. .. .. ..$ price: num  14.5 14 13
      .. .. .. ..$ size : num  12.3 10.8 19.4
      .. .. .. ..$ :'data.frame':   3 obs. of  2 variables:
      .. .. .. ..$ price: num  5.6 5.5 5.2
      .. .. .. ..$ size : num  23.6 66.7 21.1
      .. .. ..$ :'data.frame':  3 obs. of  2 variables:
      .. .. .. ..$ price: num  16 12 11.5
      .. .. .. ..$ size : num  11.1 20.7 23.9
      .. .. ..$ :'data.frame':  3 obs. of  2 variables:
      .. .. .. ..$ size : num  

如您所见,有多次嵌入列表和数据框。 我已使用dput(head(df,1))获取:

list(structure(list(QS = c(488.4, 131.639655172414, 186.244444444444, 
905.00726079825), datasection1 = structure(list(field1 = c(8L, 
9L, 15L, 7L), field2 = c("WH", "WH", "WH", "WH"),  datasection2 = structure(list(field3 = c(8L, 9L, 
15L, 7L), field4 = c("wh", "wh", "wh", "wh"), datasection2a = list(structure(list(price = c(14.5, 
    14, 13), size = c(12.35, 10.82, 19.35)), .Names = c("price", 
    "size"), ....

我已经尝试了各种方法来解决这个问题(rbindlist,解压缩,取消列表)但是还没有设法产生合理的输出。请记住,这些尝试基于堆栈上的其他类似主题。我只使用了R几个月,所以上述功能对我来说是新的,所以我可能没有正确使用它。 理想情况下,我喜欢每个部分的数据框,并保留_id作为匹配的关键字。

如果我跑:

new_df=df[[1]]$datasection1

我得到了一个我想要的数据框,但仅限于第一个文档。 如果我尝试运行类似

的东西
new_df=df$datasection1

代码运行但我得到一个空的数据框。

0 个答案:

没有答案