从SQL开始,我希望我能在dplyr中执行以下操作,这可能吗?
# R
tbl %>% mutate(n = dense_rank(Name, Email))
-- SQL
SELECT Name, Email, DENSE_RANK() OVER (ORDER BY Name, Email) AS n FROM tbl
还有PARTITION BY
答案 0 :(得分:-1)
我确实遇到了这个问题,这是我的解决方案:
如果找不到任何支持多个变量排序的函数,建议您使用paste()
从左到右按优先级将它们连接起来。
下面是代码示例:
customer_data_test %>%
group_by(customer_id, merchant_name) %>%
mutate(rank = dense_rank(paste(as.character(date), order_code))) %>%
arrange(customer_id, merchant_name, date, order_code) %>%
view()