【发布时间】:2019-06-30 19:41:58
【问题描述】:
我想根据几列中的特定条件过滤数据框。
我使用下面的例子让我的陈述更清楚。
我有一个数据框:
dat <- data.frame(A = c(122, 122, 122), B = c(0.1, 0.1, 0.1),
C = c(5, 5, 4), D = c(6, 7, 6))
我想选择在 C 列和 D 列中同时包含最大值的行,我的 R 代码是:
select <- dat %>%
group_by(A, B) %>%
filter(C == max(C) , D == max(D))
我得到我想要的:
> select
# A tibble: 1 x 4
# Groups: A, B [1]
A B C D
<dbl> <dbl> <dbl> <dbl>
1 122 0.1 5 7
但是,我想使用filter_at()函数
select <- dat %>%
group_by(A, B) %>%
filter_at(vars(C, D), all_vars(. max))
它没有工作。非常感谢您的帮助。
【问题讨论】: