2015-10-05 87 views
1

我有一個數據框,其中包含一個因變量和20個獨立變量。我想找到因變量和每個獨立變量和相關p值之間的相關係數。我寫了以下功能:相關變量和自變量之間的相關性

for (i in 2:20){ 
    correl = cor.test(df[ , i], df[ , 22]) 
    print(correl) 
} 

它一次打印出一個相關係數和它的p值。是否有一個函數能以表格的形式產生相同的結果?

+0

只是作爲參考,請參見我的博客文章爲獲得相關看到堆棧溢出多次相同的排序問題後:https://drsimonj.svbtle.com/how-does-one-可變歸屬關係與 - 所有其他 –

回答

1

可以使用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