如何使用 combn 的输出在超过 50% 的变量相关性中找到超过阈值的相关性数量?

问题描述 投票:0回答:0

我有一个大数据框,我在其中使用 combn 来获取每对变量之间的唯一组合。所以输出看起来如下(只有 7 个变量的小例子)。我遇到的问题是,我希望确定哪些特征的相关性超过 50% 超过 0.5;但是,combn 的输出在两列中都出现了变量。例如。从下面看,Var2 在 Variable_list1 中出现了 4 次,但在 Variable_list2 中出现了一次,所以总共有 5 个相关性。

 structure(list(Variable_list1 = c("Var1", "Var1", "Var1", "Var1", 
 "Var1", "Var1", "Var2", "Var2", "Var2", "Var2", "Var2", "Var3", 
 "Var3", "Var3", "Var3", "Var4", "Var4", "Var4", "Var5", "Var5", 
 "Var6"), Variable_list2 = c("Var2", "Var3", "Var4", "Var5", "Var6", 
 "Var7", "Var3", "Var4", "Var5", "Var6", "Var7", "Var4", "Var5", 
 "Var6", "Var7", "Var5", "Var6", "Var7", "Var6", "Var7", "Var7"
  ), Coefficient = c("0.771428571428571", "0.839285714285714", 
 "0.839285714285714", "0.807142857142857", "0.775", "0.807142857142857", 
 "0.946428571428571", "0.964285714285714", "0.982142857142857", 
 "0.935714285714286", "0.953571428571429", "0.925", "0.946428571428571", 
 "0.957142857142857", "0.975", "0.985714285714286", "0.921428571428571", 
 "0.935714285714286", "0.932142857142857", "0.957142857142857", 
 "0.982142857142857")), class = "data.frame", row.names = c(NA, 
  21L))

我不确定如何解决这个问题(我知道您可以使用排列来获取完整的组合列表,其中该特征在 Variable_list1 中以相同的数字出现,但我还是删除了一些行,所以无论该特征出现在列表 1 和 2 中的不同数字)。

我可以使用 table(data$Variable_list1) 和 table(data$Variable_list2) 并查看每个特征出现的次数,同时考虑每列唯一的变量以及变量在两列中出现的位置。但是我如何将它作为一个新列引入到上面的结果数据框中,然后计算哪些特征在超过 50% 的相关性中超过相关系数阈值,其中每个特征具有不同数量的总相关性?

任何建议将不胜感激。

r dplyr data.table correlation combn
© www.soinside.com 2019 - 2024. All rights reserved.