Der Trick besteht darin, shQuote
zu verwenden und sprintf
aber ich bin mir sicher, dass es clevere Wege gibt, das zu tun.
library(sqldf)
library(RPostgreSQL)
options(sqldf.RPostgreSQL.user = "****",
sqldf.RPostgreSQL.dbname = "****",
sqldf.RPostgreSQL.host = "localhost",
sqldf.RPostgreSQL.port = 5432)
myfunc <- function(name)
sqldf(sprintf("select * from retrieve_data(%s)", shQuote(name)))
myfunc('Bill')
## id name year_born nationality
## 1 A1 Bill 2001 American
## 2 A2 Bill 1991 American
## 3 A3 Bill 1995 American
Wenn Sie die Zeichenfolge nicht in Anführungszeichen setzen möchten, können Sie
verwendendrv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = "tempdb")
myfunc2 <- function(name)
dbGetQuery(con, "select * from retrieve_data($1)", name)
myfunc2("Bill")
## id name year_born nationality
## 1 A1 Bill 2001 American
## 2 A2 Bill 1991 American
## 3 A3 Bill 1995 American