gpt4 book ai didi

sql - 使用dplyr窗口函数滞后(SQL数据库)

转载 作者:行者123 更新时间:2023-12-03 19:42:20 26 4
gpt4 key购买 nike

在具有天气信息(列:DATE,DOY,TEMPERATURE)的SQLite数据库上,我想添加一个带有温度总和(从1月1日到今天的每日TEMPERATURE的总和)的新列。 (DOY是一年中的一天。)

dplyr Windows函数应该适合解决此问题。 http://cran.r-project.org/web/packages/dplyr/vignettes/window-functions.html。也许像

mutate(TEMPERATURESUM = lag(TEMPERATURE, DOY, order_by=DATE))


但它给出一个 error in statement: no such function: LAG

您是否知道一个示例,从中我可以看出我做得如何正确?我不喜欢在使用dplyr的舒适方式下使用纯SQL。

谢谢
克里斯托夫

最佳答案

如果您不反对使用原始SQL代码,则可以使用library(rsqlite)进行此操作:

# SQL statements we want to run
sql1 <- "
ALTER TABLE t
ADD COLUMN tempsum real;"

sql2 <- "
UPDATE t
SET tempsum = (SELECT Sum(t2.temperature)
FROM t as t2 WHERE t2.doy <= t.doy);"

dbSendQuery(conn, sql1)
dbSendQuery(conn, sql2)


这是根据有关SQLite中的累加和的 SO question和一个 example showing it works on SQL Fiddle(我从中了解了 here)改编而成的。

但是然后我猜您也可以只计算R中的累加和,然后将结果写回到SQLite(如果表不是太大),那么我不确定您的问题是否专门针对如何使用 dplyr ,或一般的操作方法。

关于sql - 使用dplyr窗口函数滞后(SQL数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27540119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com