我有一个非常大的csv文件(dat2),我正在尝试使用cor.test获得将一列(Age)与其他多列(Age之后的每一列)进行比较的p值。然后我需要打印p值。我使用for循环来使它工作,但是要花很长时间。我想使用Apply函数,因为我认为它将缩短编译时间?
##部分是有效的for循环。
b <- apply(dat2[,-1], 1(,4:ncol(dat2)), cor.test(dat2(Age), method="pearson", use="pairwise"))
sapply(b, "[[", "p.value")
## for (i in 4:ncol(dat2)) {
## a <- cor.test(dat2[,3], dat2[,i], method="pearson", use="pairwise")
## print(paste(colnames(dat2)[i], " p=value:", a$p.value))
## }
答案 0 :(得分:0)
您步入正轨,但几乎没有犯错。检查以下代码,我相信它会产生您想要的输出
b = apply(df2[, -1], 2, function(x) {
cor.test(df2[, 1], x, method = "pearson", use = "pairwise")
})
p.vals <- sapply(b, "[[", "p.value")
p.vals
country value
0 0