如何在R语言DataFrame中查找含指定字符串的列?
找出DataFrame中含"CONFIDENTIAL"的列并移除
情况1:列中所有值都是"CONFIDENTIAL"
对应你提供的示例场景,用以下代码提取列名:
# 提取所有值均为保密字符串的列名 conf_cols <- colnames(df)[sapply(df, function(x) all(x == "CONFIDENTIAL"))] # 查看结果 conf_cols
运行后会输出:
[1] "name" "location"
用dplyr移除这些列的两种方式:
library(dplyr) # 方式1:用提取到的列名向量 df_clean <- df %>% select(-all_of(conf_cols)) # 方式2:直接写列名 df_clean <- df %>% select(-c(name, location))
情况2:列中只要有一个值是"CONFIDENTIAL"
如果你的DataFrame里存在部分值为保密字符串的列,用以下代码提取:
# 提取至少含一个保密字符串的列名 conf_cols_partial <- colnames(df)[sapply(df, function(x) any(x == "CONFIDENTIAL"))]
基于你之前的which结果改造
如果你想基于之前用which得到的位置信息提取列名,也可以这样处理:
pos <- which(df == "CONFIDENTIAL", arr.ind = TRUE) # 去重后提取列名 conf_cols_which <- unique(colnames(df)[pos[, "col"]])
内容的提问来源于stack exchange,提问作者heikeehee
相关产品推荐
相关产品推荐

