r - 根据不同的json文件获取单独的数据框
问题描述
我有三个 .json 文件,
bc1004.json
{"fl":1137379,"flnc":1134924,"flnc_polya":1134631}
bc1005.json
{"fl":1154374,"flnc":1151937,"flnc_polya":1151606}
bc1006.json
{"fl":765436,"flnc":760524,"flnc_polya":760304}
我想获得对应于 3 个文件的 3 个单独的 data.frames,文件名对应于每个 data.frame。目前,我可以得到一个包含数据的列表。
filenames <- list.files("my_path/", pattern="*.json", full.names=TRUE)
myJSON <- lapply(filenames, function(x) rjson::fromJSON(file=x))
>myJSON
[[1]]
[[1]]$fl
[1] 1137379
[[1]]$flnc
[1] 1134924
[[1]]$flnc_polya
[1] 1134631
[[2]]
[[2]]$fl
[1] 1154374
[[2]]$flnc
[1] 1151937
[[2]]$flnc_polya
[1] 1151606
[[3]]
[[3]]$fl
[1] 765436
[[3]]$flnc
[1] 760524
[[3]]$flnc_polya
[1] 760304
解决方案
尝试
myJSON_New <- lapply(myJSON, function(x) {cols <- names(x); x %>%
unique %>%
unlist %>%
as.data.frame %>%
tibble::rownames_to_column() %>%
mutate(rowname = rowname,
var1 = names(x))})
names(myJSON_New) <- filenames
带输出
> myJSON_New
$`./bc1004.json`
rowname . var1
1 1 1137379 fl
2 2 1134924 flnc
3 3 1134631 flnc_polya
$`./bc1005.json`
rowname . var1
1 1 1154374 fl
2 2 1151937 flnc
3 3 1151606 flnc_polya
$`./bc1006.json`
rowname . var1
1 1 765436 fl
2 2 760524 flnc
3 3 760304 flnc_polya
推荐阅读
- mysql - GroupBy 来自 Laravel 5.5 中的 HasManyThrough 多对多关系的结果
- mongodb - Mongoose 查询视图
- python - Python:如何将 int 转换为 32 位 size_t 并将其写入二进制文件
- amazon-web-services - 用于在 aws 中进行弹性搜索的 Signature4 签名
- c# - 在 C# 中实现 cURL 命令(同步、发布、TLS 1,2)
- c++ - OpenCV Mat 上的 UTF8 文本
- python-3.x - Pyinstaller 不会在 Python 虚拟环境中查找文件
- c# - EntityFramework.Utilities UpdateAll 带有一个字节数组 (binary(30)) 列
- c# - 如何将 DisplayNameFor 转换为超链接
- c# - 在 else if 条件下使用 null-coalesing 运算符