将列表 -class numeric- 转换为 R 中的距离结构
convert a list -class numeric- into a distance structure in R
我有一个看起来像这样的列表,它是每个样本的分散度量。
1 2 3 4 5
0.11829384 0.24987017 0.08082147 0.13355495 0.12933790
为了进一步分析,我需要它是一个距离结构,-vegan- 包需要它作为一个 'dist' 对象。
我找到了一些适用于矩阵 > dist 的解决方案,但是如何将当前数据更改为 dist 对象?
我正在使用 FD 包,在我找到的手册中,
Still, one potential advantage of FDis over Rao’s Q is that in the unweighted case
(i.e. with presence-absence data), it opens possibilities for formal statistical tests for differences in
FD between two or more communities through a distance-based test for homogeneity of multivariate
dispersions (Anderson 2006); see betadisper for more details
我想用vegan betadisper函数来测试不同地区之间是否存在差异(我使用元素[=39提供了这个=] 也包含 "region" 列)
functional <- FD(trait, comun)
mod <- betadisper(functional$FDis, region$region)
使用 FD 中的 gowdis 或 fdisp 也不起作用。
distancias <- gowdis(rasgo)
mod <- betadisper(distancias, region$region)
dispersion <- fdisp(distancias, presence)
mod <- betadisper(dispersion, region$region)
我试过了,但我需要一个列表对象。我想我可以将这些结果传递给 betadisper。
你不能这样做:FD::fdisp()
没有 return 不同点。它 return 是一个包含三个元素的列表:每个采样单元 (SU) 的分散度 FDis
,以及输入差异的特征分解结果(特征值 eig
,特征值 vectors
对于正交特征向量)。每个原始 SU 汇总了 FDis
值,但没有关于 SU 之间差异的信息。特征分解可用于重建原始输入差异(您的 distancias
来自 FD::gowdis()
),但您可以直接使用输入差异。函数 FD::gowdis()
return 是一个常规 "dist"
结构,您可以直接在 vegan::betadisper()
中使用它,如果它能为您提供有意义的分析。为此,您的 grouping
变量必须基于与您的 distancias
相同的单位。在 fdisp
的典型应用中,单位是种(分类单元),但似乎您想对 communities/sites/whatever 进行分析。这些工具无法做到这一点。
我有一个看起来像这样的列表,它是每个样本的分散度量。
1 2 3 4 5
0.11829384 0.24987017 0.08082147 0.13355495 0.12933790
为了进一步分析,我需要它是一个距离结构,-vegan- 包需要它作为一个 'dist' 对象。
我找到了一些适用于矩阵 > dist 的解决方案,但是如何将当前数据更改为 dist 对象?
我正在使用 FD 包,在我找到的手册中,
Still, one potential advantage of FDis over Rao’s Q is that in the unweighted case (i.e. with presence-absence data), it opens possibilities for formal statistical tests for differences in FD between two or more communities through a distance-based test for homogeneity of multivariate dispersions (Anderson 2006); see betadisper for more details
我想用vegan betadisper函数来测试不同地区之间是否存在差异(我使用元素[=39提供了这个=] 也包含 "region" 列)
functional <- FD(trait, comun)
mod <- betadisper(functional$FDis, region$region)
使用 FD 中的 gowdis 或 fdisp 也不起作用。
distancias <- gowdis(rasgo)
mod <- betadisper(distancias, region$region)
dispersion <- fdisp(distancias, presence)
mod <- betadisper(dispersion, region$region)
我试过了,但我需要一个列表对象。我想我可以将这些结果传递给 betadisper。
你不能这样做:FD::fdisp()
没有 return 不同点。它 return 是一个包含三个元素的列表:每个采样单元 (SU) 的分散度 FDis
,以及输入差异的特征分解结果(特征值 eig
,特征值 vectors
对于正交特征向量)。每个原始 SU 汇总了 FDis
值,但没有关于 SU 之间差异的信息。特征分解可用于重建原始输入差异(您的 distancias
来自 FD::gowdis()
),但您可以直接使用输入差异。函数 FD::gowdis()
return 是一个常规 "dist"
结构,您可以直接在 vegan::betadisper()
中使用它,如果它能为您提供有意义的分析。为此,您的 grouping
变量必须基于与您的 distancias
相同的单位。在 fdisp
的典型应用中,单位是种(分类单元),但似乎您想对 communities/sites/whatever 进行分析。这些工具无法做到这一点。