我想删除多列中包含超过25% NAs的所有行。由于这涉及大约120个相应的列,所以不指定所有列是有用的。最好是类似于: columnA和columnZ之间的一切。
我曾尝试过与以下方面合作:
data[!is.na(data$ColumnA:data$ColumnZ), > 0.25]但它只显示了这个错误:
必须用有效的下标向量子集列。 逻辑下标必须与索引输入的大小匹配。 X输入的大小为250,但下标!is.na(data$ColumnA:data$ColumnZ) > 0.25的大小为3。
(250是数据集中列的实际数量)
我也曾考虑过尝试drop_na,但这导致了类似的问题。
你有什么意见建议?提前谢谢你
发布于 2021-06-08 23:29:24
下面是一个使用"airquality“内置数据集来标识>25% NAs (缺失值)的行的示例:
library(tidyverse)
library(naniar)
data(airquality)
dat1 <- airquality
miss_case_summary(dat1) %>% 
  filter(pct_miss >= 25)
# A tibble: 2 x 3
#   case n_miss pct_miss
#  <int>  <int>    <dbl>
#1     5      2     33.3
#2    27      2     33.3并排除这两种情况(行):
dat2 <- dat1 %>% 
  slice(-c(5, 27))如果数据集中有大量NAs,则可以使用:
list_of_gt25_NAs <- miss_case_summary(dat1) %>% 
  filter(pct_miss >= 25)
dat2 <- dat1 %>% 
  slice(-c(list_of_gt25_NAs$case))https://stackoverflow.com/questions/67895520
复制相似问题