将R中的数据帧更改为JSON文件中的特定格式

时间:2016-07-14 19:57:39

标签: json r dataframe

df

此链接是我在R中的数据框的屏幕截图,我很难将其转换为具有以下格式的JSON文件:

{"id2": 1, "x": [0,0,0,0,0,1,0]}
{"id2": 1, "x": [0,0,1,0,0,1,1]}

等等......

我一直在尝试使用R中的tojson()函数以及我在网上找到的其他一些东西,但似乎没有任何效果。任何有关这方面的指导都会非常有帮助。共有47列和10000行,因此手动操作可能需要一段时间。

1 个答案:

答案 0 :(得分:1)

以下是一个示例,使用与您类似的示例数据框。

library(jsonlite)

# Create sample data frame
> d1 <- data.frame(id=c(1,2),B=c(0,1), C=c(1,0), D=c(0,0))


# Add a column concatenating B,C and D
> d1$x <- with(d1, paste(B, C, D,sep=","))
> d1
  id B C D     x
1  1 0 1 0 0,1,0
2  2 1 0 0 1,0,0
> 

# Add opening and closing square brackets
> d1$x <- with(d1, paste("[",x,sep = ""))
> d1
  id B C D      x
1  1 0 1 0 [0,1,0
2  2 1 0 0 [1,0,0
> d1$x <- with(d1, paste(x,"]",sep = ""))

> d1
  id B C D       x
1  1 0 1 0 [0,1,0]
2  2 1 0 0 [1,0,0]
> 

#  Subset the columns we need
> d2 <- d1[,c("id","x")]
> d2
  id       x
1  1 [0,1,0]
2  2 [1,0,0]

# create JSON
> x <- toJSON(d2)
> x
[{"id":1,"x":"[0,1,0]"},{"id":2,"x":"[1,0,0]"}]