我重新运行一个RLQ和第四个角落的分析,我编码约6个月前。但是,分析Q表时出现错误。我一直在遵循Stephane Dray(2013)的教程并使用
环境表的dudi.pca(R,6个站点的6个“数字”变量),
dudi.coa,用于物种存在表(L,15个物种(“整数”数据)乘以6个位点),以及
dudi.hillsmith的性状表(Q,15个物种的7个混合性状(5个“性状”和2个“数值”))。
dudi.pca(R)和dudi.coa(L)都运行良好,但当我尝试时:
> q_feeding <- dudi.hillsmith(traits_feeding, row.w=l_feeding$cw, scannf=F, nf=2)
我明白
Error in x * w : non-numeric argument to binary operator
为了简化我们的讨论,“进食”=“存在”,对于是否观察到该物种在某个地点进食,它是0/1。当L是丰度数据时,不同的数据也会产生这种误差。我试过将分类特征改变为真/假,看看“逻辑”是否有效。我被难倒了,希望我错过的只是一些简单的东西。
“row.w=l_feeding$cw”返回一个数字向量,它告诉我dudi.coa正在工作,所以我猜我的错误在“traits_feeding”表中:
> traits_feeding
by fe dus fnt mo se ete
c.notat 0.450 0.673 Y N N N N
c.riat 0.423 0.667 Y N N Y N
z.op 0.501 0.556 N Y N N N
s.liat 0.335 0.596 N Y Y N N
s.i 0.382 0.549 N Y N N N
n.turat 0.354 0.648 N Y Y N N
c.eeke 0.297 0.348 Y Y N Y Y
c.rdid 0.306 0.688 Y Y N Y Y
s.tipinn 0.320 0.658 Y Y N Y N
s.amele 0.302 0.695 Y Y N Y N
s.midiat 0.285 0.678 Y Y N Y N
s.obb 0.294 0.666 Y Y N Y N
s.r 0.338 0.658 Y Y N Y N
s.vulat 0.315 0.684 Y Y N Y N
s.hlege 0.302 0.670 Y Y N Y N
> class(traits_feeding$by)
[1] "numeric"
> class(traits_feeding$fe)
[1] "numeric"
> class(traits_feeding$dus)
[1] "character"
> class(traits_feeding$fnt)
[1] "character"
> class(traits_feeding$mo)
[1] "character"
> class(traits_feeding$se)
[1] "character"
> class(traits_feeding$ete)
[1] "character"
我在RStudio 1.2.5042上运行R 4.0.0,并且正在运行最新的(2020年5月16日)ade 4。
有人能帮我吗?最令人费解的是,这在六个月前运行没有错误,我相信就像这里一样...
谢谢你,莱恩
2条答案
按热度按时间flvlnr441#
我知道这是一个相当晚的React,但这里是什么为我工作:
dudi.hillsmith
无法找到对字符变量进行加权的方法。我把这些因子改成了带水平的,效果很好。
希望这对其他有同样问题的人有所帮助!
ubbxdtey2#
我遇到了和你一样的问题,我相信这个问题是由于你的R版本而不是与ade 4版本有关。我能够通过删除R 4. 0并稍后安装3. 6. 2版本来解决这个问题。希望能帮上忙。
干杯!