如何解决如何使用permanova
大家好:)我有一个数据集,该数据集的一列中包含5个不同物种的个体,以及它们在不同景观中的存在/不存在(其他7列)。
data.frame': 1212 obs. of 10 variables:
$ latitude : num 34.5 34.7 34.7 34.8 34.8 ...
$ longitude : num 127 127 127 127 127 ...
$ species : Factor w/ 5 levels "Bufo gargarizans",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Built : int 0 0 0 0 0 0 0 0 0 0 ...
$ Agriculture: int 1 1 0 1 0 0 1 0 0 0 ...
$ Forested : int 0 0 1 0 0 0 0 1 1 1 ...
$ Grassland : int 0 0 0 0 0 0 0 0 0 0 ...
$ Wetland : int 0 0 0 0 0 0 0 0 0 0 ...
$ Bare : int 0 0 0 0 1 0 0 0 0 0 ...
$ Water : int 1 0 0 0 0 1 0 0 0 0 ...
我尝试使用permanova,然后进行Tukey测试,以查看该物种对景观的使用方式是否不同。我的主管在SPSS上做到了这一点,并且效果很好,所以我必须在R上做到这一点。
我看到我需要2个csv文件才能在R上运行permanova,但我只有一个。我将为您提供在互联网上找到的脚本,我想将其用于分析。
library(vegan)
data(dune)
data(dune.env)
# default test by terms
adonis2(dune ~ Management*A1,data = dune.env)
就我而言,如果我很了解,我应该有1个具有物种的数据框和1个具有环境变量的数据框。 但是,我的在场/不在场是在环境类别内(请参阅上表的str)。因此,如果仅创建1个具有种类的数据框,则在具有种类的数据框中将不会有数值。
所以我完全迷路了。我不知道该如何处理。有人能帮助我吗 ?谢谢!
解决方法
我将答案分为两部分。一个我知道我在说什么的地方,另一个我在头脑风暴的地方;)
这是关于如何将数据分为两个数据帧的第一部分
# Set seed
seed(1312)
# Some sample data
sample_data <- dplyr::tibble(species=sample(LETTERS[1:5],size=500,replace=T),Built=sample(c(0,1),Agriculture=sample(c(0,Forested=sample(c(0,Grassland=sample(c(0,Wetland=sample(c(0,Bare=sample(c(0,Water=sample(c(0,replace=T))
# Split data
df1 <- sample_data %>%
dplyr::select(species)
df2 <- sample_data %>%
dplyr::select(Built:Water)
现在第二部分:正如?adonis2
中所述,adnonis2的第一部分是一个公式,其中该公式的左侧部分必须是社区数据矩阵或相异矩阵
虽然我不确定这是否有意义,但我还是疯狂地遵循了:D
df2_dist <- dist(df2)
vegan::adonis2(df2_dist~species,data=df1)
Permutation test for adonis under reduced model
Terms added sequentially (first to last)
Permutation: free
Number of permutations: 999
vegan::adonis2(formula = d2 ~ species,data = d1)
Df SumOfSqs R2 F Pr(>F)
species 4 5.333 0.15802 0.7038 0.88
Residual 15 28.417 0.84198
Total 19 33.750 1.00000
当然,就内容而言,这可能是胡说八道,因为我在这里采用了纯粹的技术方法,但也许它可以帮助您根据需要调整数据的形状
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。