簡體   English   中英

pair.panels R 中的 function 用於 dataframe 中列的特定相關性

[英]pairs.panels function in R for specific correlations of columns in dataframe

我有一個非常大的數據集,並試圖找到許多不同(和隨機)數據組合之間的相關性。 例如,我可能想要第 3 列與第 12-15 列之間的相關性,或者第 20 列與第 1-4 列之間的相關性,等等...

我目前正在使用心理庫中的pairs.panels() function,但無法確定我想要的特定列配對。

這是df ,一個具有 26 列的虛擬data.frame ,每列包含隨機值,因此任何一對列的相關性都應該相當低。

cols = lapply(1:26, function(dummy) runif(30))
df = do.call(data.frame, cols)
names(df) = LETTERS

如果您想要列“X”與列“A”、“C”和“E”之間的相關性,請嘗試使用cor sapply進行 sapply。

sapply(df[c("A","C","E")], cor, df["X"])

或使用列號:

sapply(df[c(1,3,5)], cor, df[24])

如果您想要兩組列之間相關性的所有置換組合,請嘗試:

firstGroup <- c(1,3,5,20)
secondGroup <- c(14,20,25)
combos <- expand.grid(firstGroup, secondGroup)
result <- mapply(cor, df[combos$Var1], df[combos$Var2])
resultAsMatrix <- matrix(result, nrow = length(firstGroup), dimnames = list(firstGroup, secondGroup))

要得到:

> resultAsMatrix
            14         20          25
1  -0.22949844 -0.1527876 -0.11877405
3   0.23174965  0.0311125  0.33570756
5   0.01491815 -0.1263007 -0.16688800
20  0.18007802  1.0000000  0.04638838

編輯:

@user20650 指出cor function 能夠比較內置的兩個矩陣。所以:

cor(df[firstGroup], df[secondGroup])

產生我手動創建的矩陣,上面:

            N          T           Y
A -0.22949844 -0.1527876 -0.11877405
C  0.23174965  0.0311125  0.33570756
E  0.01491815 -0.1263007 -0.16688800
T  0.18007802  1.0000000  0.04638838

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM