R统计dataframe的genres嵌套列中name字段"Pop"的出现次数
R嵌套数据框列的字符串统计方案
需求说明
你提供的R数据框dat中,genres列每一行都存储了一个独立的嵌套数据框,需要统计所有嵌套数据框的name字段中,字符串"Pop"的总出现次数。
实现代码
方法1:基础R实现,无需加载额外包
# 遍历所有嵌套数据框,统计Pop出现次数并求和 total_pop <- sum(sapply(dat$genres, function(df) sum(df$name == "Pop"))) print(total_pop)
运行你的示例数据得到的结果为4。
方法2:tidyverse生态实现,可读性更强
library(dplyr) library(tidyr) total_pop <- dat %>% # 展开嵌套的genres列为普通行 unnest(cols = c(genres)) %>% # 筛选name为Pop的行 filter(name == "Pop") %>% # 统计行数即总次数 nrow() print(total_pop)
补充说明
如果需要统计包含Pop子串的所有场景(比如Pop/Rock也计入),可以将上述代码中的判断条件df$name == "Pop"/name == "Pop"替换为grepl("Pop", df$name)/grepl("Pop", name)即可。
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

