You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中同时统计数据列中的空白值("")和NA的数量

R 同时统计数据列中NA与空白值的行数方法

空白值""属于合法的字符串类型值,不属于R定义的缺失值NA,因此is.na()不会将其判定为TRUE,你可以将两类无效值的判断条件组合后统计:

单列统计方案

直接用逻辑或|组合两个判断条件后传入sum()即可,R中逻辑值TRUE会按1计算、FALSE按0计算,求和结果就是无效值总数量:

sum(is.na(df$ctd_id) | df$ctd_id == "")

按照你给出的示例ctd_id列数据,上述语句返回结果为3,对应第4、5、8行的3条无效记录。
如果你的空白值包含带空格的情况(比如" "这类由多个空格组成的无意义值),可以用trimws()函数先去除两端空格再判断:

sum(is.na(df$ctd_id) | trimws(df$ctd_id) == "")

扩展用法

  • 如果你习惯用dplyr处理数据,可以用如下写法:
library(dplyr)
df %>% 
  summarise(ctd_id_invalid = sum(is.na(ctd_id) | ctd_id == "")) %>% 
  pull(ctd_id_invalid)
  • 如果需要统计整个数据框中存在任意列无效的行数(任意列为NA或空白就算无效行),可以用如下语句:
sum(apply(df, 1, function(row) any(is.na(row) | row == "")))

内容的提问来源于stack exchange,提问作者Judit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:45:03