如何提取tidyrss嵌套tibble指定字段并整理,忽略非tibble元素
使用tidyverse处理tidyrss嵌套tibble提取指定字段
解决方案
直接用purrr系列函数过滤无效元素,再提取目标字段展平:
假设你的数据框名为rss_df,存储嵌套内容的列是feed_data(替换成你实际的列名),代码如下:
library(tidyverse) cleaned_rss <- rss_df %>% # 过滤掉列表元素不是tibble的行 filter(map_lgl(feed_data, is_tibble)) %>% # 对每个tibble提取需要的四个字段 mutate(extracted_items = map(feed_data, select, item_title, item_link, item_description, item_pub_date)) %>% # 展平嵌套数据成规范表格 unnest(extracted_items)
关键步骤说明
map_lgl(feed_data, is_tibble):遍历列表列的每个元素,判断是否为tibble,返回逻辑向量用于过滤,直接排除函数类无效元素。map(feed_data, select, ...):对每个合法的tibble,仅保留指定的四个字段,避免多余数据干扰。unnest(extracted_items):将嵌套的tibble展开成一行一条内容的标准表格结构。
如果你的数据有更深层次的嵌套,比如tibble里还有子列表,可以在map里添加unnest()处理,示例:
mutate(extracted_items = map(feed_data, ~ .x %>% unnest() %>% select(item_title, item_link, item_description, item_pub_date)))
内容的提问来源于stack exchange,提问作者Christopher Penn
相关产品推荐
相关产品推荐

