我想使用purrr::map()
将新列附加到包含id变量作为标识符的表的json文件列表中。
我用这种方式阅读文件:
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文件列表中。
有办法做到这一点吗?
答案 0 :(得分:0)
你快到了。
您的“添加”新变量也需要使用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帖子