【发布时间】:2021-12-29 04:56:51
【问题描述】:
由于正则表达式知识贫乏,我不知道如何使用正则表达式选择 r 中的特定列。
有一个简短的例子。我有一个数据框 df 有很多变量。
a = c('1.age41_50', '2.age51_60', '3.age61_70', '4.age71_80',
'5.age1_20', '6.age21_30', '7.age31_40', '8.ageupwith65', '9.agelo65', '10.PM2_5')
df = matrix(ncol = 10, nrow = 1) %>% as_tibble()
colnames(df) = a
df
我想使用来自dplyr 包的select() 和matches() 选择特定变量。
正则表达式应遵循以下条件:
同时,变量名不应包含
age和_。
在我看来,我首先搜索同时包含age和_的变量名,然后反向选择它但失败了。比如这样:
df %>% select(!matches('age&_'))
最终的结果应该是这样的:
df_expected = df %>% select(`8.ageupwith65`, `9.agelo65`, `10.PM2_5`)
任何帮助将不胜感激!
【问题讨论】: