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

zapisz tabelę w bazie danych za pomocą dplyr

Chociaż całym sercem zgadzam się z sugestią, aby nauczyć się SQL, możesz skorzystać z faktu, że dplyr nie pobiera danych, dopóki nie jest to absolutnie konieczne i zbuduje zapytanie za pomocą dplyr , dodaj TO TABLE klauzuli, a następnie uruchom instrukcję SQL za pomocą dplyr::do() , jak w:

# CREATE A DATABASE WITH A 'FLIGHTS' TABLE
library(RSQLite)
library(dplyr)
library(nycflights13)
my_db <- src_sqlite("~/my_db.sqlite3", create = T)
flights_sqlite <- copy_to(my_db, flights, temporary = FALSE, indexes = list(
  c("year", "month", "day"), "carrier", "tailnum"))

# BUILD A QUERY
QUERY = filter(flights_sqlite, year == 2013, month == 1, day == 1) %>%
    select( year, month, day, carrier, dep_delay, air_time, distance) %>%
    mutate( speed = distance / air_time * 60) %>%
    arrange( year, month, day, carrier)

# ADD THE "TO TABLE" CLAUSE AND EXECUTE THE QUERY 
do(paste(unclass(QUERY$query$sql), "TO TABLE foo"))

Możesz nawet napisać mały functoin, który to robi:

to_table  <- function(qry,tbl)
    dplyr::do(paste(unclass(qry$query$sql), "TO TABLE",tbl))

i przekieruj zapytanie do tej funkcji w następujący sposób:

filter(flights_sqlite, year == 2013, month == 1, day == 1) %>%
    select( year, month, day, carrier, dep_delay, air_time, distance) %>%
    mutate( speed = distance / air_time * 60) %>%
    arrange( year, month, day, carrier) %>%
    to_table('foo')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BŁĄD:podzapytanie w FROM nie może odnosić się do innych relacji tego samego poziomu zapytania

  2. Praktyczne ograniczenia indeksów wyrażeń w PostgreSQL

  3. Jak mieć klucz obcy wskazujący na dwa klucze podstawowe?

  4. Filtrowanie Django JSONField

  5. Jak skonfigurować rozszerzenie Postgres?