R语言 dudi.hillsmith在x * w中的错误:二元运算符的非数值变元

ykejflvf  于 2023-05-11  发布在  其他
关注(0)|答案(2)|浏览(176)

我重新运行一个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。
有人能帮我吗?最令人费解的是,这在六个月前运行没有错误,我相信就像这里一样...
谢谢你,莱恩

flvlnr44

flvlnr441#

我知道这是一个相当晚的React,但这里是什么为我工作:
dudi.hillsmith无法找到对字符变量进行加权的方法。
我把这些因子改成了带水平的,效果很好。
希望这对其他有同样问题的人有所帮助!

ubbxdtey

ubbxdtey2#

我遇到了和你一样的问题,我相信这个问题是由于你的R版本而不是与ade 4版本有关。我能够通过删除R 4. 0并稍后安装3. 6. 2版本来解决这个问题。希望能帮上忙。
干杯!

相关问题