在 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() 函数非常有用,所以无论如何都值得了解。
如何根据 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() 函数非常有用,所以无论如何都值得了解。