如何解决仅排除NA值而不排除R中lm中的整行?
如果我有一个如下所示的数据集,查看花园不同栖息地中蜘蛛的物种丰富度。
'data.frame': 6 obs. of 5 variables:
$ ID : int 1 2 3 4 5 6
$ species_count: num 10 13 15 17 22 9
$ habitat_type : Factor w/ 2 levels "wall","tree": 1 2 1 2 1 2
$ wall_height : num 153 NA 160 NA 170 NA
$ tree_diameter: num NA 48 NA 52 NA 71
我想创建一个以 species_count
作为因变量,habitat_type
、wall_height
和 tree_diameter
作为自变量的 lm,但是 NA 很棘手。>
lm.1 <- lm(species_count ~ habitat_type + wall_height + tree_diameter,data = DF,na.action = na.exclude)
抛出以下错误:
对比错误tmp,value = contr.funs[1 + isOF[nn]]) : 对比只能应用于具有 2 个或更多水平的因素
作为 na.exclude
和 na.omit
删除整行。
使用:
DF$wall_height <- na.exclude(DF$wall_height)
和
DF$tree_diameter <- na.exclude(DF$tree_diameter)
只是重复值,将 tree_diameter
值赋予 wall
,反之亦然,如下所示:
DF[1,]
ID species_count habitat_type wall_height tree_diameter
1 1 10 wall 153 48
有没有办法只省略 NA
值,同时保留行中的其余信息,还是必须使用单独的线性模型?
在此先感谢您的帮助,并希望我在解释问题时已经足够清楚。
解决方法
根本问题在于
wall_height
不适用于 tree
obs,反之亦然。
因此,尝试一起分析来自 wall
和 tree
栖息地的数据没有任何好处。原则上,您可以比较两个栖息地,然后评估栖息地特定特征与栖息地内物种数量的关系。
在实践中,您面临着观察极少的问题。通常,您需要在模型中使用的每个预测变量大约 10 个案例。您或许可以对 2 个栖息地进行充分的比较,但在一个栖息地内的任何结果(每个仅进行 3 次观察)都将是高度可疑的。
其他一些想法。首先,通常使用不同类型的模型(泊松广义线性模型)更好地分析计数数据。其次,物种的数量大概由每个物种的不同数量的个体来表示。可能从中可以收集到一些信息,这应该在物种多样性的生态学文献中进行解释。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。