r - dudi.hillsmith x * w : non-numeric argument to binary operator 中出现错误

标签 r pca correspondence-analysis

我正在重新运行大约 6 个月前编写的 RLQ 和第四角分析。然而,分析 Q 表时会弹出错误。我一直在关注 Stephane Dray 的 (2013) 教程并使用

dudi.pca 用于环境表(R,6 个站点的 6 个“数字”变量),

dudi.coa 用于物种存在表(L,6 个站点的 15 个物种(“整数”数据)),以及

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 是丰度数据时,不同的数据也会出现此错误。我尝试将分类特征更改为 TRUE/FALSE,看看“逻辑”是否有效。我很困惑,希望我错过了一些简单的事情。

“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 日)的 ade4。

有人可以帮我解决这个问题吗?最令人困惑的部分是,六个月前它运行没有错误,我相信和这里一样......

谢谢你, 瑞安

最佳答案

我知道这是一个相当晚的回复,但这对我有用:

dudi.hillsmith 找不到衡量字符变量的方法。

我将这些更改为具有级别的因素,效果非常好。

希望这可以帮助其他遇到同样问题的人!

关于r - dudi.hillsmith x * w : non-numeric argument to binary operator 中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61841980/

相关文章:

r - 在聚合上使用 Order(在单个语句中)

r - 如何显示 R 函数使用的 .C 例程的代码?

r - 有没有办法让 R 帮助提示(带 Tab)包括某些功能的所有参数的描述(如 Java Doc)?

python - PCA中特征重要性的度量

r - 主成分分析,成分标签?

machine-learning - 主成分分析

opencv - OpenCV中的对应分析

r - 如何更改函数内数据框列表中的列名?