如何提取R中janitor::tabyl表格内factor列NA行的统计值?
提取janitor::tabyl生成的频率表中NA行的n和percent
为什么data_mp["NA", "n"]会返回NA?
因为tabyl处理factor类型变量时,NA行对应的Mp列值是真正的缺失值NA,不是字符串"NA"。用字符串"NA"作为索引自然找不到对应行,所以返回NA。
你的方法是正确的,还可以用这些方式提取
向量索引写法(和你的思路一致,更简洁):
# 提取NA行的观测数量n na_n <- data_mp$n[is.na(data_mp$Mp)] # 提取NA行的百分比percent na_percent <- data_mp$percent[is.na(data_mp$Mp)]tidyverse风格写法(更直观,适合批量处理):
library(dplyr) na_n <- data_mp %>% filter(is.na(Mp)) %>% pull(n) na_percent <- data_mp %>% filter(is.na(Mp)) %>% pull(percent)
验证准确性
可以先查看频率表结构或定位NA行的位置,确认提取结果:
# 查看完整频率表 print(data_mp) # 定位NA行的索引 which(is.na(data_mp$Mp))
返回的索引就是NA行的位置,用该索引提取对应列的值是完全准确的。
内容的提问来源于stack exchange,提问作者Maxime Charrière
相关产品推荐
相关产品推荐

