我在R:
中使用findCorrelation
函数
highCorr <- findCorrelation(correlations, cutoff = .60,names = FALSE)
函数返回上面相关的0.6列数/名称。
我想删除这些列。
我不知道如何做到这一点,因为首先,如果我一次删除一个列号更改但是,我想尝试一些截止阈值,并希望自动执行此操作。
答案 0 :(得分:1)
如果原始数据是相关矩阵,则可以执行以下操作:
library(caret) #findCorrelation comes from this library
set.seed(1)
#create simulated data for correlation matrix
mydata <- matrix(data = rnorm(100,mean = 100, sd = 3), nrow = 10, ncol = 10)
#create correlation matrix
correlations <- cor(mydata)
#index correlations at cutoff
corr_ind <- findCorrelation(correlations, cutoff = .2)
#remove columns from original data based on index value
remove_corrs <- mydata[-c(corr_ind)]