1

我想将 R 中的一个简单 data.frame 导出到一个普通的 JSON 对象中,理想情况下将多个变量附加到一个 data.js 文件中。

这是我的data.frame:

df <- data.frame(Person=c("Dan", "Tom", "Max"), Apples=c(3,5,8), Pears=c(1,0,2), Bananas=c(30,1,4))
df

  Person Apples Pears Bananas
1    Dan      3     1      30
2    Tom      5     0       1
3    Max      8     2       4

这是我想要导出的格式。

var data1 = [
["Person", "Apples", "Pears", "Bananas"],
["Dan", 3, 1,30],
["Tom", 5, 0, 1],
["Max", 8, 2, 4],
]

谢谢!

4

1 回答 1

2

我很想问“你试过什么......?” ...

这很诱人,但不起作用,因为toJSON将行而不是列作为列表处理:

library(rjson)
cat(toJSON(df))
## {"Person":["Dan","Tom","Max"],
##    "Apples":[3,5,8],"Pears":[1,0,2],"Bananas":[30,1,4]}

apply(df,1,...)会很好,但apply()做了一堆难以关闭的简化。

tmp1 <- lapply(split(df,seq(nrow(df))),function(x) unname(as.list(x)))
cat(toJSON(c(list(names(df)),tmp1)))
## {"":["Person","Apples","Pears","Bananas"],
##    "1":["Dan",3,1,30],"2":["Tom",5,0,1],"3":["Max",8,2,4]}

这不完全是您要求的格式,但非常接近。

于 2015-07-08T15:13:02.407 回答