所以我有一个在这里编写的代码:
for (i in 2:25) {
print(i)
print(cor.test(demo_data[, i], demo_data[, 1]))
}
因此,这基本上对我的单个y变量(1)运行了每个x变量(2:25),并且输出是p值和相关值。我要做的是将这些输出放入一个表,该表具有用于标签(我测试过的东西),相关性(来自cor.test的值)和p值(来自cor.test的另一个值)的列。我应该怎么做呢?感谢您的帮助。
答案 0 :(得分:0)
您可以使用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"
的对象(基R的许多*.test
函数返回的类)不过是更改了类属性的列表。因此,标准的提取功能可以正常工作。
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
答案 1 :(得分:0)
我会这样写:
result_matrix = matrix(nrow=24, ncol=3)
for (i in 2:25) {
print(i)
cor.result <- cor.test(demo_data[, i], demo_data[, 1])
result_matrix[i-1,] <- c(demo_data[, i], cor.result$estimate, cor.result$p.value)
}
希望有帮助。