首页 > 解决方案 > 计算数据框每一列中的问号

问题描述

我的数据框中有问号作为缺失值,用“?”表示。我想写一个类似的代码:

sapply(X = df, FUN = function(x) sum(is.na(x)))

这给了我数据框每一列中问号的数量。

标签: r

解决方案


我们可以colSums在逻辑矩阵上使用

colSums(df == "?", na.rm = TRUE)

或与sapply

sapply(df, function(x) sum(x == "?", na.rm = TRUE))

或与dplyr

library(dplyr)
df %>%
    summarise(across(everything(), ~ sum(. == "?", na.rm = TRUE)))

在读取数据集时,最好使用 NA 替换na.strings

df <- read.csv('file.csv', na.strings = c("?", "NA", "N/A"))

推荐阅读