Вы можете запустить все тесты за один раз с apply
.
Я составлю набор данных, поскольку вы его еще не опубликовали.
set.seed(9263) # Make the results reproducible
n <- 1000
demo_data <- matrix(runif(n, 0, 10), ncol = 25)
cor_list <- apply(demo_data[, -1], 2, cor.test, demo_data[, 1])
Вот и все.
Теперь, чтобы извлечь нужные значения, помните, что объекты класса "htest"
, класса, возвращаемого многими *.test
функциями базы R, представляют собой не что иное, как списки с измененным атрибутом класса. Итак, стандартные функции извлечения работают.
corval <- sapply(cor_list, '[[', "estimate")
pval <- sapply(cor_list, '[[', "p.value")
labs <- paste("cor", 2:25, 1, sep = ".")
res <- data.frame(labels = labs, cor = corval, p.value = pval)
head(res)
# labels cor p.value
#1 cor.2.1 0.190852493 0.2381344
#2 cor.3.1 -0.033208075 0.8388049
#3 cor.4.1 0.236789973 0.1412597
#4 cor.5.1 0.003775437 0.9815539
#5 cor.6.1 -0.079078805 0.6276482
#6 cor.7.1 0.003072550 0.9849876