我有以下json数据
{"data": {"cat1": ["value1", "value2", "value3", "value4", "value5"], "cat2": ["aaa", "bbb", "ccc"]},"info": ""}
我想将数据转换为以下格式。如何使用函数"fromJSON">
var3value1 value2value3value4value53
下面是使用jsonlite
包的基于tidyverse
的解决方案。在读取. json文件时,分解fromJSON
创建的列表结构是非常容易的。其余部分是tidyverse
功能的应用程序。注意,Test.json
文件包含的数据与您提供的完全一样。
cols = c("var1", "var2", "var3")
A <- fromJSON("Test.json")
B <- A %>%
unique %>%
unlist %>%
as.data.frame %>%
tibble::rownames_to_column() %>%
mutate(rowname = substr(rowname, 1, nchar(rowname) - 1),
var1 = c(rep(names(A)[1], length(rowname) - 1), names(A)[2])) %>%
rename(!!cols[1] := var1, !!cols[2] := rowname, !!cols[3] := .) %>%
select(var1, var2, var3)
var1 var2 var3
1 data cat1 value1
2 data cat1 value2
3 data cat1 value3
4 data cat1 value4
5 data cat1 value5
6 data cat2 aaa
7 data cat2 bbb
8 data cat2 ccc
9 info