我想将行值中的JSON值导出到data.set中的新列。
我当前的data.set:
a b c
-------------------
1 20 10 {d:10, e:6}
2 25 15 {d:30, f:7}
3 40 20 {d:5}
to
a b c d e f
-------------------
1 20 10 0 10 6 0
2 25 15 0 30 0 7
3 40 20 0 5 0 0
答案 0 :(得分:0)
以下是使用rjson
和plyr
:
d <- data.frame(a=c(20,25,40),
b=c(10,15,20),
c=c('{"d":10, "e":6}','{"d":30, "f":7}','{"d":5}'), stringsAsFactors=FALSE)
library(rjson)
library(plyr)
tmp <- lapply(d$c, fromJSON)
tmp <- ldply(lapply(tmp, as.data.frame), I)
tmp[is.na(tmp)] <- 0
cbind(d, tmp)
给出了:
a b c d e f
1 20 10 {"d":10, "e":6} 10 6 0
2 25 15 {"d":30, "f":7} 30 0 7
3 40 20 {"d":5} 5 0 0
请注意,您必须在此使用plyr
而不是dplyr
,因为ldply
功能在后者中不可用。