【发布时间】:2018-12-01 17:57:54
【问题描述】:
我正在尝试将下面的 json 转换为数据框:
data_toy.json =
{
"department": {
"BME": [
{
"course_name": "BMD_ENG_250-0_20 Thermodynamics",
"instructor": "Neha Kamat",
"instructor_gender": "F"
}
]
}
}
但是,当我跑步时
library(jsonlite)
dat <- as.data.frame(fromJSON('data_toy.json'))
我明白了:
> str(dat)
'data.frame': 1 obs. of 3 variables:
$ department.BME.course_name : chr "BMD_ENG_250-0_20 Thermodynamics"
$ department.BME.instructor : chr "Neha Kamat"
$ department.BME.instructor_gender: chr "F"
我该怎么做:
1) 为department添加一列?
2) 制作列:部门、课程名称、讲师、讲师性别?
【问题讨论】:
-
可能是
library(tidyverse); jsonlite::fromJSON(data_toy.json) %>% pluck(1) %>% imap_dfr(~mutate(.x, department = .y)),但是多行数据的reprex会更好 -
这似乎适用于玩具示例。但是当我使用完整的json时,我得到
Error in UseMethod("mutate_") : no applicable method for 'mutate_' applied to an object of class "character" -
就像我说的,我认为你的例子不足以代表你的问题。