我有一个数据集描述了属于不同(1)物种,(2)性别和(3)生殖阶段的个体的几个行为变量 . 我的目标是创建一系列循环,这些循环允许我计算Spearman相关系数和每个行为变量之间的p值(例如下面的“隐藏”)到每个物种每个性别的另一个感兴趣的变量(下面的“嵌套”)阶段 . 我最终想要的是一个如下所示的数据框:

Species   Sex   Stage   Spearman_corr_coef   p-value   behaviour
PO        m     virgin  0.78                 0.01      hiding
PO        f     virgin  0.54                 0.09      hiding
PO        m     parent  0.03                 0.71      hiding
PO        f     parent  0.14                 0.59      hiding
BW        m     virgin  0.71                 0.02      hiding
BW        f     virgin  0.79                 0.04      hiding
...       ...   ...     ...                  ...       ...

以下是如何创建类似于我的假数据集:

ID<-as.factor(rep(seq(from=1, to=40), each=2))
hiding <- rnorm(80)
attacking <- rnorm(80)
nesting <- rnorm(80)
sex <- as.factor(rep(c("m","f"),each=2, times=20))
species <- as.factor(rep(c("A", "B"), each=40))
stage<-as.factor(rep(c("virgin", "parent"), times=80))

df <- data.frame(ID, sex, species, stage, nesting, hiding, attacking)

我想将“嵌套”(感兴趣的变量)的值与“隐藏”和“攻击”相关联,使用Spearman相关性检验,每个品种每个阶段的每个物种 . 然后,我想提取相关系数和p值,并将它们全部集成到一个数据帧中(如上所示) . 提前致谢!