【发布时间】:2021-04-26 18:00:57
【问题描述】:
我有一个与任何实际数据无关的 ID 列表。我有一个 SQL 数据库,其中每个 ID 都有一个表,这些表中的数据我想根据我拥有的 ID 列表将它们组合成一个大数据框。我认为为此需要一个 for 循环,但我无法让它正常工作。
例如,我有一个 ID 列表” 1,2,3,4,5
我有一个 SQL 数据库,其中每个都有表,它们还有与 ID 相关联的其他数据。每个 ID 都有多行多列。
我希望我的最终产品是这些行和列的组合,以便 ID 列表位于 r 中的单个数据框中。我怎么能这样做?最有效的方法是什么?
#Example data set
library(lubridate)
date <- rep_len(seq(dmy("26-12-2010"), dmy("20-12-2011"), by = "days"), 500)
ID <- rep(seq(1, 5), 100)
df <- data.frame(date = date,
x = runif(length(date), min = 60000, max = 80000),
y = runif(length(date), min = 800000, max = 900000),
ID)
for (i in 1: length(ID)){
ID[i] <- dbReadTable(mydb, ID[i])
}
非常感谢您的宝贵时间。
【问题讨论】:
-
你的意思是你的 SQL 数据库中有一个名为
1的表? -
是的,我对数据库中的每个 ID 都有一个表,我想将它们读入 R 并将它们组合成一个数据框。
-
IDs <- lapply(ID, function(i) dbReadTable(mydb, i))应该给你一个表格列表。这就是你所追求的吗?
标签: sql r sqlite for-loop rsqlite