从 json 文件创建数据框
Creating Dataframe from a json file
我想创建一个从 json 文件中读取的正确数据框。我能够正确查看创建的数据框,但 dplyr
函数 group_by
对其不起作用。这可能是因为当我对创建的数据框执行 str()
时,它会将每一列作为字符串列表而不是字符串向量。我正在尝试以下操作:
require(jsonlite)
train_file = 'train.json'
train_data <- fromJSON(train_file)
rb = data.frame(sapply(train_data,c), stringsAsFactors = FALSE)
rbs = rb %>% slice(1:10)
rbsg = rbs %>%
group_by(colname)
这会产生以下错误:
Error: cannot group column colname, of class 'list'
非常具体地说,我要读取的文件是本次 kaggle 竞赛中的 train.json 文件:
https://www.kaggle.com/c/two-sigma-connect-rental-listing-inquiries/data
您需要 unnest()
感兴趣的列,然后再对其进行操作(例如,在使用 group_by()
或其他 dplyr
动词之前):
library(jsonlite)
library(tidyverse)
rbs <- fromJSON("train.json") %>%
bind_rows()
rbsg <- rbs %>%
unnest(bedrooms) %>%
group_by(bedrooms)
rbs_filtered <- rbs %>%
unnest(bathrooms) %>%
filter(bathrooms > 5)
我想创建一个从 json 文件中读取的正确数据框。我能够正确查看创建的数据框,但 dplyr
函数 group_by
对其不起作用。这可能是因为当我对创建的数据框执行 str()
时,它会将每一列作为字符串列表而不是字符串向量。我正在尝试以下操作:
require(jsonlite)
train_file = 'train.json'
train_data <- fromJSON(train_file)
rb = data.frame(sapply(train_data,c), stringsAsFactors = FALSE)
rbs = rb %>% slice(1:10)
rbsg = rbs %>%
group_by(colname)
这会产生以下错误:
Error: cannot group column colname, of class 'list'
非常具体地说,我要读取的文件是本次 kaggle 竞赛中的 train.json 文件:
https://www.kaggle.com/c/two-sigma-connect-rental-listing-inquiries/data
您需要 unnest()
感兴趣的列,然后再对其进行操作(例如,在使用 group_by()
或其他 dplyr
动词之前):
library(jsonlite)
library(tidyverse)
rbs <- fromJSON("train.json") %>%
bind_rows()
rbsg <- rbs %>%
unnest(bedrooms) %>%
group_by(bedrooms)
rbs_filtered <- rbs %>%
unnest(bathrooms) %>%
filter(bathrooms > 5)