我想要指定一个数据框的列选择给
以下是一个示例:一个名称形如
我想一次性选择以
在
我有一种感觉,
PS: 我知道可以使用
dplyr
的xxxx_at
函数,通过.vars
参数。但是我想要选择我的选择交集。以下是一个示例:一个名称形如
[abc][abc][abc]
的数据框。df <- structure(list(aaa = 1L, baa = 2L, caa = 3L, aba = 4L, bba = 5L,
cba = 6L, aca = 7L, bca = 8L, cca = 9L, aab = 10L, bab = 11L,
cab = 12L, abb = 13L, bbb = 14L, cbb = 15L, acb = 16L, bcb = 17L,
ccb = 18L, aac = 19L, bac = 20L, cac = 21L, abc = 22L, bbc = 23L,
cbc = 24L, acc = 25L, bcc = 26L, ccc = 27L), class = "data.frame", row.names = c(NA,
-1L))
# names(df)
# [1] "aaa" "baa" "caa" "aba" "bba" "cba" "aca" "bca" "cca" "aab" "bab" "cab" "abb" "bbb" "cbb" "acb" "bcb"
# [18] "ccb" "aac" "bac" "cac" "abc" "bbc" "cbc" "acc" "bcc" "ccc"
我想一次性选择以
"a"
开头且以 "c"
结尾的列。为了在 mutate_at
、group_by_at
和 and_so_on_at
中使用该解决方案,它需要适合单次调用 vars
。在
vars
中使用多个条件会对它们进行并集操作而不是交集操作。df %>%
select_at(vars(starts_with("a"), end_with("c"))) %>%
names
# [1] "aaa" "aba" "aca" "aab" "abb" "acb" "aac" "abc" "acc" "bac" "cac" "bbc" "cbc" "bcc" "ccc"
我想要达到的目标是:
[1] "aac" "abc" "acc"
我有一种感觉,
all_vars
很重要,但我不知道如何使用它。PS: 我知道可以使用
select
代替 select_at
,但我想尽可能地通用化。我的实际用例涉及到 mutate_at
。
xxxx_at
。我只是用names
来说明。 - asachet