如何在R语言中删除数据框中含指定字符后缀的列?
R语言删除含特定后缀列的简洁方法
Base R 实现
直接利用正则匹配筛选列,无需额外依赖包:
# 删除列名包含"_ba"或"_wa"的所有列 df_clean <- df[, !grepl("_ba|_wa", colnames(df))]
grepl("_ba|_wa", colnames(df))会生成逻辑向量标记匹配目标模式的列,!取反后保留不匹配的列,间接完成删除操作。
tidyverse(dplyr)实现
若习惯使用dplyr语法,有两种直观写法:
library(dplyr) # 方式1:正则匹配批量移除 df_clean <- df %>% select(-matches("_ba|_wa")) # 方式2:分别指定关键词移除 df_clean <- df %>% select(-contains("_ba"), -contains("_wa"))
两种写法效果一致,matches()支持正则表达式批量匹配,contains()则针对固定字符串筛选,按需选择即可。
内容的提问来源于stack exchange,提问作者Ryan Gary
相关产品推荐
相关产品推荐

