Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pairs.panels在R中用于数据帧中列的特定相关性_R_Correlation_Psych - Fatal编程技术网

pairs.panels在R中用于数据帧中列的特定相关性

pairs.panels在R中用于数据帧中列的特定相关性,r,correlation,psych,R,Correlation,Psych,我有一个非常大的数据集,我试图找到大量不同的随机数据组合之间的相关性。例如,我可能需要第3列与第12-15列之间的相关性,或者第20列与第1-4列之间的相关性,等等 我目前正在使用psych库中的pairs.panels函数,但无法确定我想要的特定列对。这里是df,一个虚拟data.frame,有26列,每个列都包含随机值,因此任何一对列的相关性都应该相当低 cols = lapply(1:26, function(dummy) runif(30)) df = do.call(data.fram

我有一个非常大的数据集,我试图找到大量不同的随机数据组合之间的相关性。例如,我可能需要第3列与第12-15列之间的相关性,或者第20列与第1-4列之间的相关性,等等

我目前正在使用psych库中的pairs.panels函数,但无法确定我想要的特定列对。

这里是df,一个虚拟data.frame,有26列,每个列都包含随机值,因此任何一对列的相关性都应该相当低

cols = lapply(1:26, function(dummy) runif(30))
df = do.call(data.frame, cols)
names(df) = LETTERS
如果需要列X与列A、C和E之间的相关性,请尝试使用cor函数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))
编辑:

@user20650指出cor函数有能力比较内置的两个矩阵。因此:

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

太棒了,正是我想要的。谢谢您的帮助。@user20650,是的-一个更优雅的解决方案。谢谢你!我会更新我的答案。
            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