我有以下DataFrame:
df <- data.frame(
"DateValue" = c("2016-07-01", "2016-07-02", "2016-07-03", "2016-07-04", "2016-07-05", "2016-07-06","2016-07-07"),
"Age1" = c(rep(NA, 2), seq(14,18,2), NA, NA),
"Age2" = c(rep(NA, 2), seq(14,22,2))
)
我试图删除所有以字符串“ Age”开头的列中包含NA的所有行。但是,不要删除即使“ age”列中的一个也不缺少值的行。我的目标输出如下:
> df
DateValue Age1 Age2
1 2016-07-03 14 14
2 2016-07-04 16 16
3 2016-07-05 18 18
4 2016-07-06 NA 20
5 2016-07-07 NA 22
我正在尝试使用以下R脚本来实现相同目的,但NA不会掉落:
df <- df[!(is.na(grep("^Age", names(df)))), ]
任何指导将不胜感激。
答案 0 :(得分:2)
我们可以使用rowSums
创建一个逻辑向量,并基于该向量对行进行子集
df[rowSums(!is.na(df[grep("^Age", names(df))])) > 0, ]