在 R 中创建仅包含 NA 行的数据集

create a data set with only the NA rows in R

如何根据 NA 值创建新数据集。

                      Date Symbol     Close
1      2005-01-03 01:20:00      A 115.87094
2      2005-01-03 01:25:00      A 115.88168
3      2005-01-03 01:30:00      A 115.88168
4      2005-01-03 01:35:00      A        NA
5      2005-01-03 01:40:00     NA 115.87094
6      2005-01-03 01:45:00     NA 115.87094
7      2005-01-03 01:50:00      A 115.86020

我只想保留行中有 NA 的行

                    Date   Symbol     Close
4      2005-01-03 01:35:00      A        NA
5      2005-01-03 01:40:00     NA 115.87094
6      2005-01-03 01:45:00     NA 115.87094

我们可以使用complete.cases

df1[!complete.cases(df1),]
#                 Date Symbol    Close
#4 2005-01-03 01:35:00      A       NA
#5 2005-01-03 01:40:00   <NA> 115.8709
#6 2005-01-03 01:45:00   <NA> 115.8709

我相对来说是个初学者,但您可以在行上使用 anyNA() 遍历行(不确定如何使用 apply 或其他矢量化函数来执行此操作),然后如果是,则保留该行.

编辑: 例如

a <- rep(NA, nrow(df))

for (i in 1:nrow(df)) {
  a[i] <- anyNA(df[i, ])
}

newdf <- df[a, ]

一般来说,风格指南建议不要过度使用循环,但是 anyNA() 和 is.na() 函数非常有用,所以无论如何都值得了解。