首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Purrr追加到文件

使用Purrr追加到文件
EN

Stack Overflow用户
提问于 2018-02-24 04:59:42
回答 1查看 149关注 0票数 0

我想使用purrr::map()将一个新列附加到json文件列表中,其中包含一个以id变量作为标识符的表。

我是这样读文件的:

代码语言:javascript
复制
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文件列表中。

有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-25 06:15:34

你就快到了。

您的“添加”新变量也需要使用map完成,因为您的数据可能是一个数据帧列表。

代码语言:javascript
复制
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帖子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48956135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档