Рассчитать коэффициенты корреляции и p-значения из иерархического набора данных, используя несколько циклов
У меня есть набор данных, описывающий несколько поведенческих переменных от людей, принадлежащих к разным (1) видам, (2) полам и (3) репродуктивным стадиям. Моя цель - создать серию циклов, которые позволили бы мне рассчитать коэффициент корреляции Спирмена и значение 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)
Я хотел бы соотнести значения "вложенности" (представляющей интерес переменной) с "сокрытием" и "атакующим", используя корреляционный тест Спирмена для каждого вида для пола для каждой стадии. Затем я хотел бы извлечь коэффициент корреляции и значение p и интегрировать их все в кадр данных (как показано выше). Заранее спасибо!