Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中加速时间序列数据的SQL查询_R_Performance_Sqlite_Subquery_Rsqlite - Fatal编程技术网

在R中加速时间序列数据的SQL查询

在R中加速时间序列数据的SQL查询,r,performance,sqlite,subquery,rsqlite,R,Performance,Sqlite,Subquery,Rsqlite,我有一个包含历史河流水位和降雨数据的数据库。有一个“水位”表,其属性包括测量日期和该日期的河流水位。还有一个“降雨量”表,类似地,该表的属性包括日期和该日期的降雨量 我想对这些数据(在R中)进行一些回归,因此我尝试将我的数据转换为以下格式: Date | Level | Level yesterday | Level 2 days ago | ... | Level 5 days ago | Rainfall | Rainfall yesterday | Rainfall 2 days ago

我有一个包含历史河流水位和降雨数据的数据库。有一个“水位”表,其属性包括测量日期和该日期的河流水位。还有一个“降雨量”表,类似地,该表的属性包括日期和该日期的降雨量

我想对这些数据(在R中)进行一些回归,因此我尝试将我的数据转换为以下格式:

Date | Level | Level yesterday | Level 2 days ago | ... | Level 5 days ago | Rainfall | Rainfall yesterday | Rainfall 2 days ago | ... | Rainfall 5 days ago
这种格式意味着预测当前水平所需的所有数据都包含在一行中

我有一些(非常难看的)代码可以做到这一点,但它太慢了

下面的代码试图在2000年后的短短几年内,仅从1个仪表中选择前一天的1个液位。(有关水位和降雨量的更多历史记录,我只需包含更多子查询。)

这个大大简化和简化的查询在R中执行大约需要30分钟(使用ans=dbGetQuery(db,query))。这只返回约6000行,而我想要的完整数据集将是约8000万行

如何加快查询速度,以便在合理的时间内获得所需格式的数据

编辑: 示例输入数据

Levels Table
gauge_id  year  month   day   level
201001    1957   6       22    0.485
201001    1957   6       23    0.759
201001    1957   6       24    0.864
565753    2001   12      4     1.984

Rainfall Table
station_id  year  month   day   rainfall
123456      1957   6       22   0
123456      1957   6       23   75.4
123456      1957   6       24   20.2
987654      1986   1       16   0

Gauges Table
gauge_id    nearest_station
201001       123456
565753       764892
876544       987654     
输出数据示例:

gauge_id    station_id    Level   Level-1    Level-2   Rainfall   Rainfall-1
201001       123456       0.864    0.759      0.485    20.2        75.4

您能否添加初始数据的示例以及数据在结束时应如何显示的示例?您的数据是否总是连续三天?如果只有连续两天可用,您想要什么?连续四天发生时会发生什么?在连续三天的第一天和第二天应该发生什么?同意minem,请以SQL语法提供您的示例数据(即,一些插入表值(…);`的行以及数据库结构(创建表的行…)。如果您不想显示所有数据,请使用定制的toy数据库。我会尝试分别获取每个表,然后在R中转换数据,但这可能是因为我更熟悉R。查询所有必要的表需要多长时间?您的数据库中是否定义了适当的索引?
gauge_id    station_id    Level   Level-1    Level-2   Rainfall   Rainfall-1
201001       123456       0.864    0.759      0.485    20.2        75.4