我有以下数据框。
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"))
你知道我的问题在哪里吗?
谢谢
答案 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