我正在尝试从数据框中获取JSON数组对象,其中每个JSON对象都是数据框的子集。
我需要的输出是
找到了解决方案。
> x <- 1:5
> y <-c('a','b','c','d','e')
> z <-c(1,1,1,2,2)
> df <-data.frame(x,y,z)
> df
x y z
1 1 a 1
2 2 b 1
3 3 c 1
4 4 d 2
5 5 e 2
> rjson::toJSON(df)
[1] "{\"x\":[1,2,3,4,5],\"y\":[\"a\",\"b\",\"c\",\"d\",\"e\"],\"z\":[1,1,1,2,2]}"
> df1 = toJSONArray2(na.omit(df), json = F, names = F)
> rjson::toJSON(df1)
[1] "[[1,\"a\",1],[2,\"b\",1],[3,\"c\",1],[4,\"d\",2],[5,\"e\",2]]"
我需要的输出是
下面这个方法可以按预期获取数据帧列表,但无法获取所需的JSON输出。请注意保留HTML标记。[ [ [1,a],[2,b],[3,c] ],[ [4,d],[5,e] ] ]
> x <- foreach(i=1:2) %do% { subset(df,df$z==i)[c(1,2)]}
> x
[[1]]
x y
1 1 a
2 2 b
3 3 c
[[2]]
x y
4 4 d
5 5 e
找到了解决方案。
> x <- foreach(i=1:2) %do% {
tmp <-subset(df,df$z==i)[c(1,2)]
toJSONArray2(na.omit(tmp), json = F, names = F)
}
> rjson::toJSON(x)
我需要一种没有使用toJSONArray2的实现方式,因为该方法速度非常慢。
to_json
实现。 - Ramnath