我有以下格式的R数据框
id code value
1 A 3
2 B 5
3 C 9
使用:
toJSON(df)
returns:
[{id:1,code:A,value:3},...]
我想要的输出是:
[{1,A,3},{2,B,5}..]
使用
df <- unname(df)
returns an array of arrays, [[..],[..],...]]
我正在使用jsonlite包
答案 0 :(得分:0)
正如@nicola所说,您所请求的([{1,A,3},{2,B,5},...]
)不是有效的JSON。我相信您可以获得(没有名字)的最接近的东西是
df <- read.table(header=TRUE, stringsAsFactors=FALSE, text='id code value
1 A 3
2 B 5
3 C 9')
library(jsonlite)
toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))),
auto_unbox=TRUE)
# [[1,"A",3],[2,"B",5],[3,"C",9]]
通常,jsonlite
喜欢将标量保持为一个矢量,因此,如果删除auto_unbox=TRUE
组件,则会得到:
toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))))
# [[[1],["A"],[3]],[[2],["B"],[5]],[[3],["C"],[9]]]
在功能上可能相同,具体取决于您如何使用此数据。 (我同意,拆箱的实现方式对于人类来说更容易阅读。)
这两种方法都保留列值的类型(数字,字符串)。