हो सकता है कि यह आपके लिए एक समाधान है, गोंद_एसक्यूएल का उपयोग करके, यह मेरे कंप्यूटर पर काम करता है
https://community.rstudio .com/t/using-multiple-r-variables-in-sql-chunk/2940/13
आरएमडी भाग:
library(DBI)
library(glue)
library(RSQLite)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars, overwrite = TRUE)
cyl_int <- c(4L, 6L)
cyl_sql <- glue_sql("{cyl_int*}")
SELECT * FROM mtcars
WHERE cyl IN (?cyl_sql)
LIMIT 3
दिनांक कॉलम के लिए, आपको इसे अपने डेटाबेस के अनुसार सही ढंग से प्रारूपित करना पड़ सकता है या to_date(etc, '%d%...')
का उपयोग करना पड़ सकता है यहाँ sqlite में ISO-8601 तिथियों के साथ यह आसान है, एक उदाहरण:
library(DBI)
library(glue)
library(RSQLite)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
mtcars$DATE_1 <- seq(from = Sys.Date() - 15, to = Sys.Date() + nrow(mtcars) -16, by = 1) %>% as.character()
dbWriteTable(con, "mtcars", mtcars, overwrite = TRUE)
cyl_int <- c(4L, 6L)
cyl_sql <- glue_sql("{cyl_int*}")
d_date_sql <- glue_sql("{Sys.Date()*}", .con = con)
ध्यान दें कि आपको वर्ण पैरामीटर के लिए .con पैरामीटर निर्दिष्ट करना होगा, जैसा कि कहा गया है यहां
SELECT cyl, mpg, DATE_1 FROM mtcars
WHERE DATE_1 >= ?d_date_sql
ORDER BY DATE_1