R json到数据帧

R json到数据帧,r,R,我有一个data.json文件,如下所示: { "A" : { "data" : "a1 aa2 aaa3\na4 aa5 aaa6\na7 aa8 aaa9" }, "B" : { "data" : "b1 bb2 bbb3\nb4 bb5 bbb6\nb7 bb8 bbb9" }, "C" : { "data" : "c1 cc2 ccc3\nc4 cc5 ccc6\nc7 cc8 ccc9" } } > print(output[[1

我有一个
data.json
文件,如下所示:

{
  "A" : {
    "data" : "a1 aa2 aaa3\na4 aa5 aaa6\na7 aa8 aaa9"
  },
  "B" : {
    "data" : "b1 bb2 bbb3\nb4 bb5 bbb6\nb7 bb8 bbb9"
  },
  "C" : {
    "data" : "c1 cc2 ccc3\nc4 cc5 ccc6\nc7 cc8 ccc9"
  }
}
> print(output[[1]])

   X1   X2    X3
1  a1  aa2  aaa3
2  a4  aa5  aaa6
3  a7  aa8  aaa9

> print(output[[2]])

   X1   X2    X3
1  b1  bb2  bbb3
2  b4  bb5  bbb6
3  b7  bb8  bbb9

#and so on...
我想将其转换为数据帧列表(称为
output
),每个大写字母对应一个data.frame。字符串
“\n”
区分数据帧中的行。每个数据帧应如下所示:

{
  "A" : {
    "data" : "a1 aa2 aaa3\na4 aa5 aaa6\na7 aa8 aaa9"
  },
  "B" : {
    "data" : "b1 bb2 bbb3\nb4 bb5 bbb6\nb7 bb8 bbb9"
  },
  "C" : {
    "data" : "c1 cc2 ccc3\nc4 cc5 ccc6\nc7 cc8 ccc9"
  }
}
> print(output[[1]])

   X1   X2    X3
1  a1  aa2  aaa3
2  a4  aa5  aaa6
3  a7  aa8  aaa9

> print(output[[2]])

   X1   X2    X3
1  b1  bb2  bbb3
2  b4  bb5  bbb6
3  b7  bb8  bbb9

#and so on...

只需使用rjson/jsonlite库以列表的形式加载json文件,并使用
read.table
函数以数据帧的形式读取每个字符串:

lapply(rjson::fromJSON(file = "data.json"), function(x) read.table(text = x$data))

#$A
#  V1  V2   V3
#1 a1 aa2 aaa3
#2 a4 aa5 aaa6
#3 a7 aa8 aaa9

#$B
#  V1  V2   V3
#1 b1 bb2 bbb3
#2 b4 bb5 bbb6
#3 b7 bb8 bbb9

#$C
#  V1  V2   V3
#1 c1 cc2 ccc3
#2 c4 cc5 ccc6
#3 c7 cc8 ccc9

您是否尝试过像“jsonlite”这样的包来帮助您操作JSON对象?还没有,我只是用rjson库加载了JSON文件