如何使用正则表达式选择r中数据框的列?

时间:2019-09-22 21:20:43

标签: r regex dataframe select

我有以下数据框。

D <- data.frame(A123.case.vs.B123.Cntl._FC = 1:4, B123.case.vs.B123.Cntl._FC = 0:3, A123.case.vs.D123.Cntl._FC= 2:5, FC = 1:4, A123.case= 0:3, B123.cntrl = 0:3)

我想使用正则表达式选择前3列。

这是我正在尝试的方法,但是它不起作用。

D %>% select(contains("case.vs.[a-z]*[0-9].cntl"))

你知道我的问题在哪里吗?

谢谢

1 个答案:

答案 0 :(得分:3)

以下正则表达式可以解决问题。

library(dplyr)

D %>% select(matches('case\\.vs\\.[[:alpha:]][[:digit:]]+'))
#  A123.case.vs.B123.Cntl._FC B123.case.vs.B123.Cntl._FC A123.case.vs.D123.Cntl._FC
#1                          1                          0                          2
#2                          2                          1                          3
#3                          3                          2                          4
#4                          4                          3                          5