[英]How to separate scatterplot by different colors by group in pairs.panels() in R
[英]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.