【发布时间】:2021-12-07 22:35:09
【问题描述】:
我需要在 SQL 中应用一个从 R 开始对我来说很容易的过程,但在 SQL 中确实很曲折。
我需要将数据按两个变量从高到低排序,根据另一个变量分组,然后选择每个组中的第一项。
我留下了我试图从 R 传递到 SQL 的代码。不幸的是,在尝试将一种语言转换为另一种语言时,dbplyr 包向我抛出了一个错误:错误:first() 仅在窗口化 (mutate()) 上下文中可用
library(tidyverse)
library(dbplyr)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
copy_to(con, mtcars)
mtcars2 <- tbl(con, "mtcars")
mtcars2
mtcars2 %>%
arrange(-mpg,-disp) %>%
group_by(cyl) %>%
summarise(hp = first(hp)) %>%
show_query()
在我看来,DISTINCT ON 功能可以帮助我。
感谢您的帮助。
【问题讨论】: