當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R dbplyr copy_inline 在 dbplyr 查詢中使用本地 DataFrame


這是 copy_to() 的替代方案,不需要寫訪問,並且對於小數據來說速度更快。

用法

copy_inline(con, df, types = NULL)

參數

con

數據庫連接。

df

本地 DataFrame 。數據直接寫入 SQL 查詢中,因此數據應該很小。

types

用於列的 SQL 數據類型的命名字符向量。數據類型是後端特定的。例如,對於 Postgres,這可能是 c(id = "bigint", created_at = "timestamp", values = "integer[]") 。如果是 NULL (默認值),則類型由 df 確定。

一個tbl_lazy

細節

它通過 VALUES 子句直接將數據寫入 SQL 查詢中。

也可以看看

copy_to() 將數據複製到新的數據庫表中。

例子

df <- data.frame(x = 1:3, y = c("a", "b", "c"))
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")

copy_inline(con, df)
#> # Source:   SQL [3 x 2]
#> # Database: sqlite 3.41.2 [:memory:]
#>       x y    
#>   <int> <chr>
#> 1     1 a    
#> 2     2 b    
#> 3     3 c    

copy_inline(con, df) %>% dplyr::show_query()
#> <SQL>
#> SELECT CAST(`x` AS INTEGER) AS `x`, CAST(`y` AS TEXT) AS `y`
#> FROM (
#>   SELECT NULL AS `x`, NULL AS `y`
#>   WHERE (0 = 1)
#>   UNION ALL
#>   VALUES (1, 'a'), (2, 'b'), (3, 'c')
#> ) AS `values_table`
源代碼:R/verb-copy-to.R

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Use a local data frame in a dbplyr query。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。