我想使用
fy
选择以 giving
开头并以 dplyr
结尾的所有列。我尝试了以下代码
df %>% select(start_with('fy') & ends_with('giving')
但是没有成功。
p/s:实际上我可以用以下块来破解它
df %>% select(starts_with('fy')) %>% select(ends_with('giving'))
但我还是想把这两个条件都放在一处
你可以使用这个:
df %>% select(intersect(starts_with('fy') , ends_with('giving')))
添加了与@Vincent Bonhomme相同的示例:
iris %>% select(intersect(starts_with("Pet"), ends_with("gth"))) %>% colnames
#[1] "Petal.Length"
您可以尝试使用
matches
代替正则表达式:
df %>% select(matches("^fy.*giving$"))
应该完成这项工作。
使用
iris
的虚拟示例:
iris %>% select(matches("^Pet.*gth$")) %>% colnames
[1] "Petal.Length"
这也有效(提取以
Pe
开头并以 Length
结尾的变量):
iris %>%
select_at(vars(starts_with("Pe") & ends_with("Length")))
# Petal.Length
# 1 1.4
# 2 1.4
# 3 1.3
# 4 1.5