使用 Purrr 附加到文件
Using Purrr to append to files
我想使用 purrr::map()
将一个新列附加到 json 个文件的列表中,其中包含 table 并使用 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 文件列表中。
有办法吗?
你快到了。
您的 "add" 新变量也需要使用 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 post
我想使用 purrr::map()
将一个新列附加到 json 个文件的列表中,其中包含 table 并使用 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 文件列表中。
有办法吗?
你快到了。
您的 "add" 新变量也需要使用 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 post