在R中使用like运算符删除列名称

时间:2019-04-09 12:19:11

标签: r dataframe

我有一个数据框,其中大多数列名称如下:

tre_ui_1920
tre_ui_2221
tre_ui_8989

和类似

foo_bar_123
foo_bar_456

我要删除属于foo_bar_*tre_ui_*的所有列

我在R中看到很少的代码建议使用子集和索引。 有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我们可以使用grepl根据列名中的模式返回逻辑索引

i1 <- !grepl("foo_bar_|tre_ui_", names(df1))
subdf1 <- df1[i11]

答案 1 :(得分:0)

这很容易在dplyr中完成:

dat %>% select(matches("foo_bar_|tre_ui_"))