regex R:如何选择与dplyr匹配的列?

deikduxw  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(98)

我是一个使用正则表达式和dplyr::matches()的初学者,所以这可能是一个愚蠢的问题:
如何使用dplyr::matches()选择名称中前导零的列?
示例数据:

d <- data.frame(
    var_001 = c( 1, 2, 3 ),
    var_012 = c( 4, 5, 6 ),
    var_001_b = c( 11, 22, 33 ),
    var = c( 7, 8, 9 )
)

字符串
我建立的模式:

pattern <- 'var_[0*\\d+]{3}$'


如果我使用str_match(),我可以检测到正确的名称:

str_match( names( d ), pattern )

#>      [,1]     
#> [1,] "var_001"
#> [2,] "var_012"
#> [3,] NA       
#> [4,] NA


但是,在select()中使用matches()不会返回任何列:

d %>%
    select( matches( pattern ) )

#> # A tibble: 3 x 0

6rqinv9w

6rqinv9w1#

这里有一种方法:

d %>% 
  select(matches("^var_0"))

字符串
另一种方式:

d %>% 
  select(starts_with("var_0" ))

相关问题