我认为问题很简单,但它让我感到满意。假设我有一个json文件:
{ “KEY1”:[ “VALUE1”],
“key2”:[“value2”,“value3”,“value4”],
“key3”:[“value5”,“value6”]}
我想将它们导入数据框,如:
0 key value
1 key1 value1
2 key2 value2
3 key2 value3
4 key2 value4
5 key3 value5
6 key3 value6
使用不同的参数从jSON函数中尝试jsonlite和rjson,它返回一些列表而不是dataframe
从其他问题中尝试了几个答案,但仍然无法弄清楚。帮助是有用的!
尝试取消列出功能并采用丑陋的方法(灵感来自R unlist changes names):
json <- '{"key1":["value1"],
"key2":["value2", "value3", "value4"],
"key3":["value5", "value6"]}'
jsonR <- fromJSON(txt = json)
data.frame(key = rep(names(jsonR ), lengths(jsonR )), value = unlist(jsonR , use.names=F))
答案 0 :(得分:0)
我猜你可以使用stack
和rev
函数(分别来自utils
和base
包)来实现这一目标:
> json <- '{"key1":["value1"],
+ "key2":["value2", "value3", "value4"],
+ "key3":["value5", "value6"]}'
>
> df <- rev(stack(fromJSON(txt=json)))
> colnames(df) <- c('key', 'value')
> df
key value
1 key1 value1
2 key2 value2
3 key2 value3
4 key2 value4
5 key3 value5
6 key3 value6