【发布时间】:2019-08-30 01:21:59
【问题描述】:
假设有四个数据帧,每个数据帧有 3 个向量,例如
setA <- data.frame(
a1 = c(6,5,2,4,5,3,4,4,5,3),
a2 = c(4,3,1,4,5,1,1,6,3,2),
a3 = c(5,4,5,6,4,6,5,5,3,3)
)
setB <- data.frame(
b1 = c(5,3,4,3,3,6,4,4,3,5),
b2 = c(4,3,1,3,5,2,5,2,5,6),
b3 = c(6,5,4,3,2,6,4,3,4,6)
)
setC <- data.frame(
c1 = c(4,4,5,5,6,4,2,2,4,6),
c2 = c(3,3,4,4,2,1,2,3,5,4),
c3 = c(4,5,4,3,5,5,3,5,5,6)
)
setD <- data.frame(
d1 = c(5,5,4,4,3,5,3,5,5,4),
d2 = c(4,4,3,3,4,3,4,3,4,5),
d3 = c(6,5,5,3,3,4,2,5,5,4)
)
我正在尝试在每个数据帧中找到n 的向量数量,它们彼此之间具有最高的相关性。对于这个简单的示例,假设要在每个 k = 4 数据帧中找到 n = 1 向量,它们显示出整体最强的正相关 cor()。
我对数据帧内向量的相关性不感兴趣,但对数据帧之间的相关性不感兴趣,因为我希望从每个集合中选择 1 个变量。
直观地说,我会将每个组合的所有相关系数相加,即:
sum(cor(cbind(setA$a1, setB$b1, setC$c1, setC$d1)))
sum(cor(cbind(setA$a1, setB$b2, setC$c1, setC$d1)))
sum(cor(cbind(setA$a1, setB$b1, setC$c2, setC$d1)))
... # and so on...
...但这似乎是强制使用某种聚类技术,可能更优雅地解决的解决方案?
无论如何,我希望找到一个动态解决方案,例如 function(n = 1, ...) where(... 用于数据帧),它将返回最高相关向量名称的列表。
【问题讨论】:
标签: r cluster-analysis correlation