r - 如何查找包含特定字符串的列名中 `NA`值的个数,并分别显示每列 `NA`值的个数?

标签 r

假设我有一堆列,其中许多列名称中包含“start_time”。如何计算每一列中 NA 值的数量并分别显示答案(不是所有找到的 NA 值的总和)。

示例输出:

abc_start_time
## 5

xyz_start_time
## 1

ggg_start_time_end
## 0

或类似的东西。

最佳答案

使用 colSums() 将 TRUE/FALSE 与 grep() 相加以识别所有需要的列:

colSums(is.na(df[grep("start_time", names(df))]))

#     abc_start_time     xyz_start_time ggg_start_time_end 
#                 5                  2                  0 

is.na(df[grep("start_time", names(df))] 部分将返回一个 bool 矩阵 (TRUE/FALSE),其中包含“starts_with”的所有列name. colSums() 部分将按列将所有 TRUE 为 1 和 FALSE 为 0 相加。 数据

df <- data.frame(abc_start_time = seq.Date(as.Date("2023/01/01"), as.Date("2023/01/30"), by = "day"),
                 xyz_start_time = seq.Date(as.Date("2023/01/01"), as.Date("2023/01/30"), by = "day"),
                 ggg_start_time_end = seq.Date(as.Date("2023/01/01"), as.Date("2023/01/30"), by = "day"),
                 another_column = seq.Date(as.Date("2023/01/01"), as.Date("2023/01/30"), by = "day"))
df[c(1,3,5:7), 1] <- NA
df[c(6,7), 2] <- NA

关于r - 如何查找包含特定字符串的列名中 `NA`值的个数,并分别显示每列 `NA`值的个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75139506/

相关文章:

r - R中fuzzySim包中的错误发现率(FDR)

r - fread() 失败,integer64 列中缺少值

r - 由于搜索路径上的名称冲突,如何在 R 中取消屏蔽函数

r - 为什么即使添加 add ='mean_se' 后,误差线也不会显示在 ggpubr::ggbarplot 中

r - 抑制 submitButton 对 shiny app 启动的影响

r - 在 R 中添加带有颜色和范围的图例

r - ggplot2 中随时间变化的 CumSum 与 Total 的关系

r - 如何使用 R 创建 for 循环来过滤特定行并将输出保存在新文档中?

r - 具有正确字符编码的 xml2::read_html 在 Ubuntu 上崩溃

r - R 中的 HDBSCAN 可视化应用文本标签而不是数字