我想使用purrr::map()将一个新列附加到json文件列表中,其中包含一个以id变量作为标识符的表。
我是这样读文件的:
path <- "my_path"
files <- dir(path, pattern = "*.json")
data <- files %>%
map(~fromJSON(file.path(path, .), flatten = TRUE)
data <- data %>%
mutate(new_var = //do something//)然后,我想使用purrr map类型方法将这个新变量添加到带有id变量的json文件列表中。
有没有办法做到这一点?
发布于 2018-02-25 06:15:34
你就快到了。
您的“添加”新变量也需要使用map完成,因为您的数据可能是一个数据帧列表。
library(tidyverse)
library(jsonlite)
json <-
'[
{"Name" : "Mario", "Age" : 32, "Occupation" : "Plumber"},
{"Name" : "Peach", "Age" : 21, "Occupation" : "Princess"},
{},
{"Name" : "Bowser", "Occupation" : "Koopa"}
]'
json2 <-
'[
{"Name" : "Luigi", "Age" : 31, "Occupation" : "Plumber"},
{"Name" : "Toad", "Age" : 32, "Occupation" : "Majordomo"},
{},
{"Name" : "Koopa", "Occupation" : "Henchman"}
]'
list(json, json2) %>%
map(~fromJSON(.x)) %>%
map(~mutate(.x, Game = "Super Mario Bros"))
[[1]]
Name Age Occupation Game
1 Mario 32 Plumber Super Mario Bros
2 Peach 21 Princess Super Mario Bros
3 <NA> NA <NA> Super Mario Bros
4 Bowser NA Koopa Super Mario Bros
[[2]]
Name Age Occupation Game
1 Luigi 31 Plumber Super Mario Bros
2 Toad 32 Majordomo Super Mario Bros
3 <NA> NA <NA> Super Mario Bros
4 Koopa NA Henchman Super Mario Bros如果你的json比较复杂,我建议阅读jsonlite的小插曲和this帖子。
https://stackoverflow.com/questions/48956135
复制相似问题