我正在尝试首次将csv转换为JSON格式。将csv读入R时,其格式如下:
col1 col2 col3
1 a def1
1 b def2
2 c def3
2 a def1
理想情况下,我想遍历数据框,找到这三列的唯一组合,并将JSON的键/值对分离为以下内容:
{ "1":["a", "def1"], ["b", "def2"], "2":["a", "def1"], ["c", "def3"]}
我只能想到在python中实现此目标的方法,但是我在R中执行此过程遇到了困难。有关如何开始使用它的任何建议?
我们可以通过'col1'将split
d列的子集(不带'col1')unname
,并在其上应用toJSON
library(jsonlite)
toJSON(split(unname(df1[-1]), df1$col1))
#{"1":[["a","def1"],["b","def2"]],"2":[["c","def3"],["a","def1"]]}
如果需要order
ed>
toJSON(split(unname(df1[do.call(order, df1[1:2]),-1]), df1$col1)) #{"1":[["a","def1"],["b","def2"]],"2":[["a","def1"],["c","def3"]]}
数据
df1 <- structure(list(col1 = c(1L, 1L, 2L, 2L), col2 = c("a", "b", "c",
"a"), col3 = c("def1", "def2", "def3", "def1")), class = "data.frame",
row.names = c(NA,
-4L))