【问题标题】:R: Selecting multiple colums in is.naR:在 is.na 中选择多个列
【发布时间】:2013-04-23 11:03:24
【问题描述】:

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

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")

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

【问题讨论】:

  • @Roland 我真的会把它作为答案。

标签: r multiple-columns na


【解决方案1】:

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

【讨论】:

  • 谢谢,我通过为各个列创建子集来调整您的解决方案。然而,当使用 stepAIC na.omit 或 na.exclude 将不起作用,只有 is.na 会做
  • 请告诉我如何在 cmets-section 中标记代码 ^^
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-12-02
    • 2018-03-26
    • 1970-01-01
    • 2015-05-07
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    相关资源
    最近更新 更多