以下是我数据的前5行:数据帧称为反转
Location Transect Species Count
McAbee M1 Bat Star 35
McAbee M1 Turban Snail 2
McAbee M1 Sun Star 1
McAbee M1 Chiton 1
..........
我正在尝试加入我的物种并将数据统计在一起,因此我可以执行ANOVA来查看位置和横断面之间的差异。我有两个地点和四个横断面。
我认为tapply()
函数是用于将Species
和Count
加在一起的正确函数,但我无法弄清楚代码。
我相信代码应该是:
inverts$speciescount = tapply(inverts$Species, inverts$Count, ....)
所以我对如何组合这两列有了很好的反馈,但是,我仍然无法比较横断面和位置之间的数据。我不确定如何继续。我想要做的是创建一个代码:
Count ~ Transect
# or
Count ~ Location
这样做的问题是计数数据只是一堆数字,它是一个物种的参考。有没有人有任何建议?
感谢您的帮助
答案 0 :(得分:1)
您可以使用角色方式:
within(inverts, speciesCount <- paste(Species, Count, sep=":")
或因素方式:
within(inverts, speciesCount <- Species:factor(Count))
由于这是在线性建模的背景下,因子方式似乎更合适。
答案 1 :(得分:0)
如果我理解你的问题,那么d为你的data.frame:
newd <- data.frame(d[,c("Location","Transect")],SpeciesCount=paste(d$Species,d$Count))
答案 2 :(得分:0)
我认为您对建模功能的输入应该是什么感到困惑。如果你在计算计数,那么就需要这样的东西:
cfit <- glm(counts ~ transect + location + species, data=inverts, family="poisson")
anova(cfit)
如果您想查看物种与位置的相互作用,那么您可以检查此模型:
cfit2 <- glm(counts ~ transect + location + species, data=inverts, family="poisson")
anova(cfit2)
可以进行线性回归,但是你可能会得到负面计数等无意义的预测。