【发布时间】:2017-12-08 08:42:29
【问题描述】:
我有一个使用`dplyr处理许多不同数据帧的函数,如下所示:
some_function <- function(some_data){
processed_data = some_data %>%
group_by(session_id) %>%
arrange(some_date) %>%
mutate(n = row_number()) %>%
filter(n == 1) %>%
select(-n)
}
传递给函数的数据帧每个共享几个关键列名称,但其他的不同。在这个函数中,我一般只处理共享列名,所以引用它们很简单。
例外情况是希望arrange() 通过一些在数据帧中系统地不同的变量。例如它可能是在一个数据框中名为 a_date 而在另一个数据框中名为 b_date 的列。
所以我想对以_date 结尾的列名进行操作。有一些方法可以对整个列名的字符串表示进行操作,但使用某种匹配会比较棘手。 dplyr 中的 select() 函数可以使用 ends_with() 等函数选择列。但是如何在其他dplyr 动词中实现这一点,例如arrange()?
【问题讨论】: