sql >> Databáze >  >> RDS >> PostgreSQL

volání funkce SQL v rámci funkce R

Trik je v použití shQuote a sprintf ale jsem si jistý, že existují chytré způsoby, jak to udělat.

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

Pokud se chcete vyhnout citacím řetězce, můžete použít

drv <- 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



  1. Jak vytvořit index pro prvky pole v PostgreSQL?

  2. PSQLException:ERROR:hodnota null ve sloupci porušuje podmínku ne-null

  3. K čemu slouží deklarace soketu v databázi Ruby on Rails.yml?

  4. Django ConnectionAbortedError:[WinError 10053] Navázané připojení bylo přerušeno softwarem ve vašem hostitelském počítači