根据r中的字符串关联数据框中的项目

Correlate item in dataframe based on character string in r

我目前有数据集 newdat,这是一个包含项目分数的数据框:

set.seed(1)
newdat <- setNames(data.frame(replicate(5,sample(1:5,10,replace=TRUE))),paste0("i",1:5))

   i1 i2 i3 i4 i5
1   2  2  5  3  5
2   2  1  2  3  4
3   3  4  4  3  4
4   5  2  1  1  3
5   2  4  2  5  3
6   5  3  2  4  4
7   5  4  1  4  1
8   4  5  2  1  3
9   4  2  5  4  4
10  1  4  2  3  4

我还有字符串"newCV"和"newDV",它们是:

newCV <- c("i3","i2")
newDV <- c("i1")

我试图将 DV 与除它本身以外的所有项目以及 newCV 中包含的项目相关联。我尝试了以下方法:

corr<-cor(newdat,use="complete.obs")[-which(colnames(newdat)==c(newCV,newDV)),which(colnames(newdat)==c(newCV,newDV))]

如果在 CV 中找不到任何内容,这会起作用,但如果在 CV 中找到某些内容,我会收到错误消息并且没有结果。有什么想法吗?谢谢!

如果您只想计算特定的相关性,您可以select将哪些列传递给cor

cor(newdat[newDV], newdat[!(names(newdat) %in% c(newCV, newDV))], 
                                                      use="complete.obs")