我有一个带有一个因变量和20个独立变量的数据框 . 我想找到因变量和每个自变量之间的相关系数以及相关的p值 . 我写了以下函数:
for (i in 2:20){ correl = cor.test(df[ , i], df[ , 22]) print(correl) }
它一次打印出一个相关系数及其p值 . 是否有一个以表格格式产生相同结果的函数?
您可以使用 sapply 获取结果向量,每对一个结果:
sapply
base.idx <- 1 other.idx <- 2:20 cors <- unname(sapply(other.idx, function(i) cor.test(df[,base.idx], df[,i])$estimate)) pvals <- unname(sapply(other.idx, function(i) cor.test(df[,base.idx], df[,i])$p.value))
这是一个内置虹膜数据集的示例,抓取Sepal.Length和其他三个数值之间的相关信息:
base.idx <- 1 other.idx <- 2:4 (cors <- unname(sapply(other.idx, function(i) cor.test(iris[,base.idx], iris[,i])$estimate))) # [1] -0.1175698 0.8717538 0.8179411 (pvals <- unname(sapply(other.idx, function(i) cor.test(iris[,base.idx], iris[,i])$p.value))) # [1] 0.1518983 0.0000000 0.0000000
1 回答
您可以使用
sapply
获取结果向量,每对一个结果:这是一个内置虹膜数据集的示例,抓取Sepal.Length和其他三个数值之间的相关信息: