【问题标题】:How to deal with NaN values in R?如何处理 R 中的 NaN 值?
【发布时间】:2020-09-25 17:20:21
【问题描述】:

我正在测试随机截距,为增长曲线建模做准备。

因此,我首先创建了一个宽子集,然后将其转换为长数据集。

使用长数据集计算我的ModelM1 <- gls(ent_act~1, data=school_l),我收到一条错误消息,因为我有缺失值。在我的长子集中,这些值表示为 NaN。

申请temp<-na.omit(school_l$ent_act)时,我可以计算ModelM1。但是,在计算 ModelM2 ModelM2 <- lme(temp~1, random=~1|ID, data=school_l) 时,我会收到错误消息,即我的变量长度不定。

如何处理这些缺失值? 有什么想法或建议吗?

【问题讨论】:

  • 请阅读this post,然后编辑您的问题以提供一个简单、独立的问题示例。

标签: r nan na missing-data


【解决方案1】:

您可能会获得成功的是制作一个临时数据框,您可以在其中删除通过否定缺失条件索引的整行:!is.na(school_1$ent_act)

temp<-school_l[ !is.na(school_l$ent_act), ]

然后重新运行lme 调用。现在应该没有可变长度的不匹配了。

ModelM2 <- lme(ent_act  ~1, random= ~1|ID, data=school_l)

请注意,使用 school_l 可能会造成混淆,因为以 Times 字体查看时,它看起来非常像 school_1

【讨论】:

  • 谢谢!我认为这行得通。但是,我以某种方式得到了“错误”的结果,因为我的模型 1 和 2 得到了相同的结果,这在查看数据时是不正确的。模型 1 预测的截距也与我的数据相去甚远。有人看到我的代码有错误吗?
  • ### 测试随机截距 temp&lt;-!is.na(school_l$ent_act) ModelM1 &lt;- gls(temp~1, data=school_l) summary(ModelM1) # 所有人和所有时间点的平均 ent_act:0.6509222,p 值 = 0 logLik(ModelM1) # 拟合统计量:越接近 0 越好(预测中的错误越少)--> -1510.926 deviance1 &lt;- logLik(ModelM1)*-2 #Deviance
  • #随机系数模型ModelM2 &lt;- lme(temp~1, random=~1|ID, data=school_l) summary(ModelM2) logLik(ModelM2) #-1510.926(与模型1相同)deviance2 &lt;- logLik(ModelM2)*-2deviance1 - deviance2#偏差差异:-3.159585e-09(几乎为0 ) anova(ModelM1, ModelM2) # p-value = 1,绝对不显着。
  • 不要使用 cmets 修改或修改问题。我认为这可能需要一个新问题,因为这个问题是如何避免不相等的可变长度,现在(这个问题显然已经解决)你在模型拟合方面遇到了不同的问题。
  • 好吧,这很有道理。对此感到抱歉。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
相关资源
最近更新 更多