问题描述
我正在尝试使用 jsonlite 将两个 json 对象连接到 R 中的单个 json 对象中。
我使用的 api 需要一个 Json 对象,该对象将数据帧的列名作为第一个元素,然后是行的数字输出。举例说明:
df <- data.frame(A = rnorm(2),B = rnorm(2),C = rnorm(2))
我需要看起来像:
set.seed(123)
[["A","B","C"],[-0.5605,1.5587,0.1293],[-0.2302,0.0705,1.7151]]
但以下尝试未能实现上述目标:
c( jsonlite::toJSON( names(df) ),jsonlite::toJSON( df,"values" ))
paste0( jsonlite::toJSON( names(df) ),"values" ))
This 解决方案不起作用,我还没有找到关于如何实现这一目标的任何其他建议。
任何想法将不胜感激。
解决方法
一个选项是按行(asplit
和MARGIN = 1
)拆分为list
,将数据的c
与(names
)连接起来,然后应用toJSON
library(jsonlite)
toJSON(c(list(names(df)),asplit(df,1)))
#[["A","B","C"],[-0.5605,1.5587,0.1293],[-0.2302,0.0705,1.7151]]