【发布时间】:2020-09-02 14:55:06
【问题描述】:
我正在重新运行我大约 6 个月前编写的 RLQ 和第 4 角分析。但是,在分析 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,并且正在运行 ade4 的最新版本(2020 年 5 月 16 日)。
谁能帮我解决这个问题?最令人费解的部分是六个月前运行时没有出错,我相信和这里一样......
谢谢, 瑞恩
【问题讨论】:
标签: r pca correspondence-analysis