R语言修改tibble列表元素及按维度筛选tibble列表咨询
需提前加载依赖包:
library(tidyverse) library(rvest)
问题1 自动筛选13×6尺寸的tibble
使用purrr::keep()遍历列表元素,匹配维度条件的元素会自动保留,无需手动指定索引:
# 读取页面提取所有表格 a <- read_html("Top Ten FRANKREICH 2021_2.html") %>% html_nodes("table") %>% html_table() # 筛选所有13行6列的表格 a_filtered <- a %>% keep(~ all(dim(.x) == c(13, 6)))
问题2 批量处理列表并合并为结构化数据集
使用purrr::map()批量对每个符合条件的tibble执行自定义处理逻辑,处理完成后直接用bind_rows()合并为统一数据集,每个条目会自带对应的Weekend标识:
final_data <- a_filtered %>% map(~{ # 提取第一行的周末标识 weekend_label <- .x[1, 1, drop = TRUE] # 将第二行设置为列名 colnames(.x) <- as.character(.x[2, ]) # 取第三行及以后的有效票房数据,新增Weekend列 .x[3:nrow(.x), ] %>% mutate(Weekend = weekend_label) }) %>% # 合并所有处理好的tibble为一个数据集 bind_rows()
处理完成后的final_data就是你需要的携带Weekend标识的统一结构化数据集,可按需后续转换列的数值类型、清洗特殊字符。
内容的提问来源于stack exchange,提问作者RuffGriffin
相关产品推荐
相关产品推荐

