【问题标题】:RDA with small data set is not performing full analysis具有小数据集的 RDA 未执行完整分析
【发布时间】:2021-05-06 01:11:04
【问题描述】:

我正在尝试使用简单的数据集执行 RDA 分析,但即使数据已标准化,我仍然会遇到相同的错误。谁能帮我理解这个模型有什么问题?

`view(data_RDA)
summary(data_RDA)

abiotic.lake<-data_RDA[, c(1:11)] 
biotic.lake<-data_RDA[, c(12:20)]

biotic.lake<-decostand(biotic.lake,"hellinger")
abiotic.lake<-decostand(abiotic.lake,"standardize")

rda.lake<- rda(biotic.lake, abiotic.lake)
plot(rda.lake, type="text") #The error starts at this point
anova.cca(rda.lake) 
summary(rda.lake)
coef(rda.lake)
`

我尝试运行情节线时遇到的错误:

Error in cbind(x$CCA$v, x$CA$v)[, choices, drop = FALSE] : 
  subscript out of bounds
  • 我认为没有执行分析,因为 rda.lake 的摘要仅返回 RDA1 结果。

  • 数据被识别为数字。

  • anova.cca 函数仅返回零作为残差并且不显示 p 值,这让我相信数据或模型存在问题。

  • 这些是实际使用的表格,都有 6 行。

生物湖

Cian Crip Dino Cris Xant Diat Eugl Zigne Cloro
0.0590634 0.21536114 1.286085 0.01117714 0.00000000 0.17741471 0.1438246 0.04127306 0.23323527
0.0590634 0.21536114 1.286085 0.01117714 0.00000000 0.17741471 0.1438246 0.04127306 0.23323527
0.0590634 0.21536114 1.286085 0.01117714 0.00000000 0.17741471 0.1438246 0.04127306 0.23323527
2.8144055 0.09724492 1.128178 0.02302370 0.03858338 0.01373549 0.9708160 0.90119103 0.08646308
2.8144055 0.09724492 1.128178 0.02302370 0.03858338 0.01373549 0.9708160 0.90119103 0.08646308
2.8144055 0.09724492 1.128178 0.02302370 0.03858338 0.01373549 0.9708160 0.90119103 0.08646308

非生物湖

Prof Temp_H2O OD Cond N_Tot NO2 NO3 SRP SIO Zmax Zeu
0.0 20.7 8.15 98 230.72 9.28 294.32 15.91 3.72 4.8 4.5
2.0 20.4 7.16 105 228.61 8.56 352.34 8.92 4.49 4.8 4.5
4.8 20.0 5.20 107 190.82 6.82 293.81 11.15 7.82 4.8 4.5
0.0 30.4 9.24 100 610.28 3.46 42.82 36.15 13.17 5.0 2.0
2.0 28.3 6.62 110 612.11 3.63 48.19 32.19 11.94 5.0 2.0
5.0 25.8 2.13 115 560.31 4.69 60.98 35.30 11.03 5.0 2.0
  • 编辑:根据需要,“dput”的输出

块引用

    `dput(data_RDA)
    structure(list(Prof = c(0, 2, 4.8, 0, 2, 5), Temp_H2O = c(20.7, 20.4, 20,  30.4, 28.3, 25.8), OD = c(8.15, 7.16, 5.2, 9.24, 6.62,  2.13), Cond = c(98L,  105L, 107L, 100L, 110L, 115L), N_Tot = c(230.72, 228.61, 190.82, 610.28, 612.11,  560.31), NO2 = c(9.28, 8.56, 6.82, 3.46, 3.63, 4.69), NO3 = c(294.32, 352.34, 293.81, 42.82, 48.19, 60.98), SRP = c(15.91, 8.92, 11.15, 36.15, 32.19, 35.3), SIO = c(3.72, 4.49, 7.82, 13.17, 11.94, 11.03), Zmax = c(4.8, 4.8, 4.8, 5, 5, 5), Zeu = c(4.5, 4.5, 4.5, 2, 2, 2), Cian = c(0.0590634, 0.0590634, 0.0590634, 2.814405487, 2.814405487, 2.814405487), Crip = c(0.215361139, 0.215361139, 0.215361139, 0.097244921, 0.097244921, 0.097244921), Dino = c(1.286084811, 1.286084811, 1.286084811, 1.128178481, 1.128178481, 1.128178481), Cris = c(0.011177144, 0.011177144, 0.011177144, 0.023023705, 0.023023705, 0.023023705), Xant = c(1e-07, 1e-07, 1e-07, 0.038583378, 0.038583378, 0.038583378), Diat = c(0.17741471, 0.17741471, 0.17741471, 0.01373549, 0.01373549, 0.01373549), Eugl = c(0.14382456, 0.14382456, 0.14382456, 0.970816029, 0.970816029, 0.970816029), Zigne = c(0.041273061, 0.041273061, 0.041273061, 0.901191033, 0.901191033, 0.901191033), Cloro = c(0.233235275, 0.233235275, 0.233235275, 0.086463085, 0.086463085, 0.086463085)), class = "data.frame", row.names = c(NA, -6L))
  • 编辑 2:根据需要,rda.lake 的输出:

块引用

'rda.lago
Call: rda(X = biotic.lake, Y = abiotic.lake)

              Inertia Proportion Rank
Total         0.01198    1.00000     
Constrained   0.01198    1.00000    1
Unconstrained 0.00000    0.00000    0
Inertia is variance 
Some constraints were aliased because they were collinear (redundant)

Eigenvalues for constrained axes:
    RDA1 
0.011977 '
  • 编辑 3:由 rda 分析产生的 NA。

块引用

'coef(rda.lake)
                 RDA1
Prof      0.003503013
Temp_H2O -0.152503172
OD        0.100134578
Cond      0.020938441
N_Tot    -0.295691269
NO2                NA
NO3                NA
SRP                NA
SIO                NA
Zmax               NA
Zeu                NA '

【问题讨论】:

  • 你能发布一个最小的可重现的例子吗?例如,您可以在 data_RDA 上执行 dput,然后将输出复制并粘贴到此处。
  • 该错误不一定意味着 RDA 已部分执行。它只是意味着 plot 函数越过结果对象,例如数据框中的行数。
  • rda.lake 的输出是什么?
  • 我将与代码一起使用的表格发布为 bio.lake 和 abiotic.lake。我正在使用 dput 输出编辑原始帖子。

标签: r multivariate-testing rda


【解决方案1】:

首先,我认为你的问题与Plotting RDA (vegan) in ggplot有关。

这个错误

Error in cbind(x$CCA$v, x$CA$v)[, choices, drop = FALSE] : 
  subscript out of bounds

表示R 尝试选择不存在的索引(列或行索引),例如假设你有 5 行,你想选择第 8 行。那么,你会得到同样的错误。

这个错误,特别是,除了rda.lake$CCA$v(只是将x 替换为您的rda.lake),意味着相同。我重新创建了您的问题并能够绘制一些东西,例如试试plot(rda.lake$CA$Xbar)。也就是说,我不知道你想绘制什么。请查看rda 返回的对象。此函数返回存储在列表中的大量变量。

【讨论】:

  • 我的目的是绘制带有显示 RDA 分析结果的点和箭头的双图。如果我理解正确,绘图函数正在尝试使用不存在的 rda.lake 参数。当我用 x 代替 rda.lake 时,输出是一张 RDA 系数表,但是当再次运行绘图线时,错误仍然存​​在。还有其他方法可以得到这个情节吗?
  • 我编辑了我的答案,因为您的问题可能是重复的。请看一看。
  • 感谢您的回答,但这不是我想要的。尽管它使用 vegan 包中的相同函数 (rda),但在该问题中,该人正在执行 PCA 分析,仅使用一个数据集来协调变量。我的分析属于受限类型,这意味着我使用两个数据集来验证第一个对第二个的影响。
  • 也许分布有问题,或者数据的变化不允许运行分析,然后发生错误是有道理的,因为绘图试图选择不存在。我正在使用从“coef”函数中获得的系数再次编辑帖子,该函数显示了一些 NA。
猜你喜欢
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2018-12-14
  • 2021-07-27
相关资源
最近更新 更多