r - 如何使用 jsonlite 或其他包将 csv 转换为 json,第一列作为键,第二列和第三列作为值?

标签 r

现在我得到了:

[
  {
    "full": "f1",
    "semiabrv": "s1",
    "abrv": "a1"
  },
  {
    "full": "f2",
    "semiabrv": "s2",
    "abrv": "a2"
  }
] 

我期望使用什么:

{

"f1": ["s1","a1"],

 "f2": ["s2","a2"]  
}

MWE:

fb <- structure(list(full = c("f1", "f2"), semiabrv = c("s1", "s2"), 
abrv = c("a1", "a2")), row.names = 1:2, class = "data.frame")

fb|> 
  jsonlite::toJSON(pretty=TRUE)

感谢您的任何想法!

如果有其他可用的软件包,也可以。

最佳答案

我本来打算建议dataframe="column",但您的输出假定使用(在一列中)作为名称进行定制(对于所有其他列的组合)。为此,我们需要自定义代码(但不多)。

jsonlite::toJSON(
  do.call(Map,
    c(list(f = function(nm, ...) c(...), fb$full), fb[-1])
  ), pretty = TRUE)
# {
#   "f1": ["s1", "a1"],
#   "f2": ["s2", "a2"]
# } 

虽然它看起来就像我们提供fb$full作为nm=(在anonfunc中)然后丢弃它,但我正在大写Map 倾向于使用第一个参数来定义输出的名称。

关于r - 如何使用 jsonlite 或其他包将 csv 转换为 json,第一列作为键,第二列和第三列作为值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74642300/

相关文章:

r - 增加 R 中向量元素的高幂

r - 如何在R中加载示例数据集?

r - 如何在 R ggplot 中动态绘制线段(geom_segment)?

r - 如何将 purrr::map 与数据框列表一起使用来修改特定数据框中的列值而不更改列表中的其他数据框?

r - 与 R Markdown 并排的 rgl 图

R传单easybutton : reset view to layer bbox

r - 按列位置将函数参数传递给 mutate_at

r - 在 R 中使用条件进行内部连接

R 条形图轴缩放

r - 为什么这不在一张图中绘制多个函数?