r - 将 R 数据帧写入信息图可读 JSON 文件
问题描述
我正在尝试将数据框写入 infogram 可以识别的 JSON 格式,以自动进行实时更新。我一直在使用 R 和 jsonlite 包。
例如:
df <- data.frame(X = c(1,2,3),
Y = c(5,7,8))
df
# X Y
#1 1 5
#2 2 7
#3 3 8
我想出了:
require(jsonlite)
rbind(as.matrix(t(names(df))),
as.matrix(df)) %>%
toJSON(pretty = T) # or write_json(filename, pretty = T) to write straight to file
结果是:
[
["X", "Y"],
["1", "5"],
["2", "7"],
["3", "8"]
]
所需的格式基本上是上述格式,但包含在一对额外的方括号中(注意第一个数组由列标题组成,然后每个后续数组都是一个观察值)。
[[
["X", "Y"],
["1", "5"],
["2", "7"],
["3", "8"]
]]
有没有简单的方法来实现这一目标?谢谢
解决方案
require(jsonlite)
## The data.frame
df <- data.frame(X = c(1,2,3),
Y = c(5,7,8))
现在您可以将对象修改为列表,然后您将在 json 输出中获得相同的列表项:
mat <- list(rbind(as.matrix(t(names(df))), as.matrix(df)))
现在有了你想要的额外括号:
toJSON(mat, pretty = T)
推荐阅读
- python - 如何检查变量是否适合自定义类型
- eloqua - Oracle Eloqua 中用于表单的名字和仅用于电子邮件的名字有什么区别
- php - @csrf 不适用于 laravel 7.x 中的 cpanel
- android - 处理将图像共享到应用程序中,并使用其 uri 将副本复制到另一个文件夹
- node.js - 在其他文件中调用函数的问题(Firebase 函数)
- python - 调整图像大小裁剪超出部分
- swift5 - 播放视频时的 CALayer 消息(Xcode 12.5.1,Swift 5)
- javascript - 部署到服务器后,“Curl 连接超时”出现在 React 应用程序的授权标头中
- redirect - 在内部重定向到“/static/js/main.b5cacb14.chunk.js”时重写或内部重定向循环,
- fluentd - 由于聚合器任务失效,日志未推送到 ES