r - 检查名称(df)是否在其他字符列表中,返回真假值
问题描述
我有以下
structure(list(id = c(14, 15, 16, 17, 18), a = c(1, 2, 3, 5,
6), b = c(3, NA, 2, 5, 7), c = c(1, 2, 3, 4, 5)), row.names = c(NA,
-5L), class = "data.frame")
id a b c
1 14 1 3 1
2 15 2 NA 2
3 16 3 2 3
4 17 5 5 4
5 18 6 7 5
library(caret)
corr <- cor(na.omit(df))
highcorr <- findCorrelation(corr, cutoff = 0.9, names=TRUE)
highcorr
[1] "a" "id"
我想获得一个新的数据框,如果 col 名称在 highcorr 中,则返回 true,否则返回 false。新数据框看起来像这样
col result
1 id TRUE
2 a TRUE
3 b FALSE
4 c FALSE
我觉得我想的太难了。我用 %in% 尝试了一些东西,但你只得到了 TRUE 值。任何建议将不胜感激:)!
解决方案
您可以使用以下代码:
library(reshape2)
library(dplyr)
a<-melt(corr,value.name = "corr")
a<-a[!duplicated(a$corr),]
a<- a %>% select(Var1, corr)%>% mutate(result = ifelse(corr > 0.9,T,F )) %>% select(Var1, result)
Var1 result
1 id TRUE
2 a TRUE
3 b FALSE
4 b FALSE
推荐阅读
- typescript - Vue3 不使用 cli 服务
- python - 如何在每三个数字之间留一个空格?
- spring - 使用 Grails SAML 插件时,如何将 AuthnContextClassRef 元素添加到 AuthnRequest 中?
- ruby-on-rails - 登录后设计不会重定向到根目录
- python - 如何改变每秒的数据包数
- javascript - Github 操作无法找到本地 Nuxt Js 插件
- azure - Azure Pipeline Ftp-Upload CleanContents 不起作用
- python - 如何使用 CSV_2 中的值更新 CSV_1 中的字段?
- c++ - 我不知道如何修复我的代码,它不能正常工作
- c# - 解决 NetCore 6 中 values1.Count 上的“Nullable value type may be null”