我想使用!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")
它不适用于此代码 - 还有其他任何建议吗?
答案 0 :(得分:2)
阅读?lme
并特别注意na.action
参数,您可以设置为na.omit
或na.exclude
。但是,如果您想比较模型,最好在lme
之外执行此操作,例如lme.dat <- na.omit(table)
。这样,所有模型都将使用相同的数据。
答案 1 :(得分:0)
您可以对要检查的列子集使用complete.cases
命令。例如:
df[complete.cases(df[,5:8]),]
这会丢弃选择中至少有一个NA
的每一行。