如何将GOV.UK公共假日RJson转换为R语言DataFrame?
解决GOV.UK公共假日JSON转DataFrame的方法
fromJSON读取返回的是嵌套列表结构,每个地区对应包含events列表的元素,只需提取各地区事件数据并合并即可得到目标格式的DataFrame。
方案一(使用tidyverse工具)
library(jsonlite) library(dplyr) library(purrr) # 读取JSON数据 holiday_json <- fromJSON("https://www.gov.uk/bank-holidays.json") # 提取各地区事件并添加地区标识,合并为DataFrame holiday_df <- map_dfr(names(holiday_json), function(region) { events <- holiday_json[[region]]$events events$region <- region events }) # 保留目标三列并调整列名 holiday_final <- holiday_df %>% select(region, type, date) %>% rename( 假日所属地区 = region, 假日类型 = type, 日期 = date ) # 查看结果示例 head(holiday_final)
方案二(基础R实现)
若不想依赖tidyverse包,用基础R代码也能完成:
library(jsonlite) holiday_json <- fromJSON("https://www.gov.uk/bank-holidays.json") # 初始化空DataFrame holiday_df <- data.frame( region = character(), type = character(), date = character(), stringsAsFactors = FALSE ) # 循环遍历每个地区,提取数据并合并 for (region in names(holiday_json)) { events <- holiday_json[[region]]$events events$region <- region holiday_df <- rbind(holiday_df, events[, c("region", "type", "date")]) } # 可选:修改列名为中文 colnames(holiday_df) <- c("假日所属地区", "假日类型", "日期")
内容的提问来源于stack exchange,提问作者PhantomICEMAN
相关产品推荐
相关产品推荐

