【发布时间】:2019-05-03 18:42:03
【问题描述】:
我有一个 tibble 和一个列表,我想将它们写入 json 文件。
# A tibble: 2 x 12
i n c x
<chr> <chr> <chr> <chr>
1 NYC New York City United States LON,271;BOS,201
2 LON London United Kingdom NYC,270
我想用列表替换“x”列。
当我尝试将“i”列与列表元素合并时,大量数据重复...:/
样品清单:
$NYC
d p
1: LON 271
2: BOS 201
$LON
d p
1: NYC 270
我想最终得到这样的东西:
[
{
"i": "NYC",
"n": "New York City",
"c": "United States",
"C": "US",
"r": "Northern America",
"F": 66.256,
"L": -166.063,
"b": 94.42,
"s": 0.752,
"q": 4417,
"t": "0,0,0,0,0",
"x": [{
"d": "LON",
"p": 271
},
{
"d": "BOS",
"p": 201
}]
}
...
]
我在想应该有一种方法可以在不合并列表和小标题的情况下编写 json 文件,或者有一种方法可以将它们合并到 ragged way 中?
啊。我只是有了另一个想法。也许我可以将我的数据框转换为列表,然后使用 Reduce 组合列表...
http://www.sharecsv.com/s/2e1dc764430c6fe746d2299f71879c2e/routes-before-split.csv
http://www.sharecsv.com/s/b114e2cc6236bd22b23298035fb7e042/tibble.csv
【问题讨论】:
-
您可以添加
dput的小标题和列表吗?似乎也存在不一致:在您的预期输出中,i、x、列表和x列的值基本上没有共同点。 -
我已经添加了前 100 行的 csv。我认为通过将两者拆分为列表
d1_split <- split(d1, d1$i)我已经接近了,但我在组合它们时遇到了麻烦 -
例如,列表中的
$ZVK应与包含ZVK的i列中的行匹配。我想删除 tibble 中的x列并将其替换为列表的内容以创建嵌套列表,以便我可以使用 toJSON 保存输出 -
@JuliusVainora 是 for 循环的唯一方法吗?
-
@JuliusVainora 哦,好吧。希望现在更清楚一点
标签: r list merge element to-json