r语言 - CCA 分析:加权中的误差.mean.default(newX[, i], ...) : 'x' 和 'w' 必须具有相同的长度



我对R很陌生,这可能是一个非常愚蠢的问题,但我现在很困。

我目前正试图对我的数据做一个规范对应分析,看看哪些环境因素对社区分布有更大的影响。我用的是素食包装。我的数据包括一个环境因素表(数据集EFamoA)和另一个丰度矩阵表(数据集AmoA)。我有41个土壤,39个环境因素和334个物种。在清除所有非数值变量的数据后,我尝试使用公式符号执行cca分析:

CCA.amoA <- cca (AmoA ~ EFamoA$PH + EFamoA$LOI, data = EFamoA, 
scale = TRUE, na.action = na.omit)

然后我得到这个错误:

Error in weighted.mean.default(newX[, i], ...) : 
'x' and 'w' must have the same length

我真的不知道从哪里开始,也没有找到关于这个问题的太多信息(这让我认为这一定是我正在做的某种非常基本的错误)。我的环境因素数据没有标准化,正如我在cca帮助文件中看到的那样,算法可以做到这一点,但也许我应该之前标准化它?(我还指出scale = TRUE仅适用于物种)。我应该把数据转换成矩阵吗?

我希望我的观点足够清楚,因为我已经为此挣扎了一段时间了。

编辑:我的环境数据有NA值

好吧,所以我能够自己弄清楚,这确实是一件愚蠢的事情,原来我的丰度数据以土壤为列,物种为行,而环境因子(EF)数据以土壤为行,EF为列。

在我的数据上使用t(),我转换了我的数据帧(并附带将其转换为矩阵),cca()工作(我假设"长度"是相同的)。单独转置数据并加载已经转置的数据也是有效的。虽然也许t()方法节省了创建一个全新文件的需要(如果你的数据是使用不同的行组织在我的情况下),它将数据转换成一个矩阵,这在某些情况下可能不需要,无论哪种方式,这被证明是一个非常简单和明显的事情来解决(花了我一段时间虽然)。

相关内容

  • 没有找到相关文章

最新更新