如何创建一个简单的查询来使用列名的一部分来过滤不同列的数据框

问题描述 投票:0回答:1

现在我使用这行代码:

df <- df1 %>% dplyr:: select(grep("x", names(df1)), grep("y", names(df1)), grep("z", names(df1)))

如果不重复 grep,我无法找到一种方法来做到这一点。最好为 grep 提供一个列表,或者创建一个无需复制和调整 grep 行的和平代码。有更好的方法来过滤包含部分字符串的列名的数据框吗?

r filter grep
1个回答
0
投票

您可以在

matches
内使用
select
,其中正则表达式包含由
|
分隔的潜在匹配项。

这意味着您现有的代码应该相当于

df <- df1 %>% select(matches('x|y|z'))
© www.soinside.com 2019 - 2024. All rights reserved.