R:在is.na中选择多个列

时间:2013-04-23 11:03:24

标签: r multiple-columns na

我想使用!is.na命令删除部分包含NAs的行:

table=data.frame(col1=c(1:2,NA,4,NA,4),col2=c(7:9,NA,NA,NA),col3=c(2:4,NA,NA,4),col4=c(1:6))

col1 col2 col3 col 4
1    7    2    1     
2    8    3    2 
NA   9    4    3
4    NA   NA   4
NA   NA   NA   5
4    NA   4    6

这应该都发生在lme环境中,例如:

lme(col1~ log(col2)+col3, random= ~ 1 |col4, data=table[(!is.na(table[c("col1","col2","col3","col4")])),], method="ML")

它不适用于此代码 - 还有其他任何建议吗?

2 个答案:

答案 0 :(得分:2)

阅读?lme并特别注意na.action参数,您可以设置为na.omitna.exclude。但是,如果您想比较模型,最好在lme之外执行此操作,例如lme.dat <- na.omit(table)。这样,所有模型都将使用相同的数据。

答案 1 :(得分:0)

您可以对要检查的列子集使用complete.cases命令。例如:

df[complete.cases(df[,5:8]),]

这会丢弃选择中至少有一个NA的每一行。