我是一个使用正则表达式和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
型
1条答案
按热度按时间6rqinv9w1#
这里有一种方法:
字符串
另一种方式:
型