在WHERE字段中使用用户指定变量的RSQLite查询
我正在使用R in中的在WHERE字段中使用用户指定变量的RSQLite查询,r,rsqlite,R,Rsqlite,我正在使用R in中的RSQLite库来管理对RAM来说太大的数据集。对于每个回归,我都会查询数据库,每次检索一个会计年度。现在,我已将财政年度硬编码为: data.annual <- dbGetQuery(db, "SELECT * FROM annual WHERE fyear==2008") data.annualSQLite将只看到为查询传递的字符串,因此您所做的如下操作 sqlcmd <- paste("SELECT * FROM annual WHERE fisca
RSQLite
库来管理对RAM来说太大的数据集。对于每个回归,我都会查询数据库,每次检索一个会计年度。现在,我已将财政年度硬编码为:
data.annual <- dbGetQuery(db, "SELECT * FROM annual WHERE fyear==2008")
data.annualSQLite将只看到为查询传递的字符串,因此您所做的如下操作
sqlcmd <- paste("SELECT * FROM annual WHERE fiscal=", fiscal.year, sep="")
data.annual <- dbGetQuery(db, sqlcmd)
sqlcmdDirk的答案非常准确。我尝试做的一件小事是更改格式以便于测试。似乎我必须多次将SQL文本剪切并粘贴到SQL编辑器中。所以我的格式如下:
sqlcmd <- paste("
SELECT *
FROM annual
WHERE fiscal=
", fiscal.year, sep="")
data.annual <- dbGetQuery(db, sqlcmd)
sqlcmd哇!我需要将使用paste
创建字符串并将其作为参数传递的想法内化!谢谢您的意思是将它从一个emacs缓冲区粘贴到另一个emacs缓冲区?;-)哎哟哎哟别再戳我了。疼。哎哟,我的意思是“不要用我明显的emacs使用不足来戳我的眼睛”类似的一句话:
years <- seq(2000,2010)
data <- lapply(years, function(y) {
dbGetQuery(db, paste("SELECT * FROM annual WHERE fiscal=", y, sep="")
}
sqlcmd <- paste("
SELECT *
FROM annual
WHERE fiscal=
", fiscal.year, sep="")
data.annual <- dbGetQuery(db, sqlcmd)