PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

wywołaj funkcję SQL w funkcji R

Sztuką jest użycie shQuote i sprintf ale jestem pewien, że jest na to sprytny sposób.

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

Jeśli chcesz uniknąć cytowania ciągu, możesz użyć

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zrobić system budowania dla PostgreSQL

  2. Błąd składni EXECUTE w postgresql

  3. Jaki typ znacznika czasu wybrać w bazie danych PostgreSQL?

  4. Zwracany typ funkcji SQL:rekordy TABLE vs SETOF

  5. Rails 3.1 - Pushing to Heroku - Błędy podczas instalacji adaptera postgres?