在R中,我想自动删除高度相关的变量,这样我就不必为每个帐户定制每个代码。现在我正在为我正在测试的所有变量创建一个名为r
w / correlations的表,这一步很好:
r <- subset(r, r > 0.95)
我明白了:
row.names r
max_stage10_ 1.0000000
max_stage60_ 0.9530657
ln_form_cnt7_ 0.9509219
ln_form_cnt60_ 0.9712263
这些是我要删除的内容。
这些row.names
与另一个表ulmdata2
中的名称相匹配。如何获取ulmdata2
数据框以删除与r
表中显示的名称匹配的变量?
我可以像这样自定义并且它可以工作,但是必须每次都这样做并填写变量名称:
ulmdata2 <- ulmdata2[,-which(names(ulmdata2) == "max_stage10_")]
ulmdata2 <- ulmdata2[,-which(names(ulmdata2) == "max_stage60_")]
ulmdata2 <- ulmdata2[,-which(names(ulmdata2) == "ln_form_cnt_7")]
ulmdata2 <- ulmdata2[,-which(names(ulmdata2) == "ln_form_cnt_60")]
但目标是自动化它,以便如果名称在r
表中,我可以快速将其从ulmdata2
表中删除。
我玩过像这样的代码
ulmdata2 <- ulmdata2[,-which(ulmdata2$rownames == r$rownames)]
但它刚刚删除了我的所有ulmdata2
。其他调整完全没有变化。