使用dplyr过滤nflfastR数据集时player_name列返回空数据框
问题原因排查及解决思路
以下是导致筛选"A. Dalton"返回空数据框的常见原因及对应排查方法:
- 姓名格式不匹配
nflfastR原始数据中的球员姓名格式可能和你输入的"A. Dalton"不一致,比如是全名"Andy Dalton"、缩写不带点"A Dalton",或是姓氏在前的格式"Dalton, A."。直接运行以下代码即可查看数据里所有真实存在的姓名,确认目标球员的准确写法:
unique(qb_21$player_name)
- 传球尝试数过滤导致遗漏
你在分组汇总后添加了filter(att >= 30),如果Andy Dalton在2021赛季的总传球尝试数不足30,就会被这个条件筛掉。可以先移除该过滤条件再尝试筛选,或者用原始数据统计他的总尝试数:
stats_2021 %>% filter(grepl("Dalton", player_name)) %>% summarise(total_att = sum(attempts))
- 姓名含隐藏字符
数据中的姓名可能存在看不见的特殊字符(比如全角空格、制表符),导致表面一致但实际匹配失败。用模糊匹配定位目标行:
qb_21 %>% filter(grepl("Dalton", player_name))
或者用stringr包查看字符串的具体结构:
library(stringr) str_view(qb_21$player_name, "Dalton")
- 原始数据缺失记录
确认stats_2021是否包含Andy Dalton在2021赛季的出场数据,比如他当年的比赛记录是否被正确导入到数据集中。
内容的提问来源于stack exchange,提问作者Moisés Feitosa
相关产品推荐
相关产品推荐

