這是 copy_to()
的替代方案,不需要寫訪問,並且對於小數據來說速度更快。
參數
- con
-
數據庫連接。
- df
-
本地 DataFrame 。數據直接寫入 SQL 查詢中,因此數據應該很小。
- types
-
用於列的 SQL 數據類型的命名字符向量。數據類型是後端特定的。例如,對於 Postgres,這可能是
c(id = "bigint", created_at = "timestamp", values = "integer[]")
。如果是NULL
(默認值),則類型由df
確定。
也可以看看
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 dbplyr copy_to.src_sql 將本地 DataFrame 複製到遠程數據庫
- R dbplyr collapse.tbl_sql 計算查詢的結果
- R dbplyr count.tbl_lazy 按組計數觀察值
- R dbplyr complete.tbl_lazy 完成缺少數據組合的 SQL 表
- R dbplyr backend-teradata 後端:Teradata
- R dbplyr escape 轉義/引用字符串。
- R dbplyr expand.tbl_lazy 擴展 SQL 表以包含所有可能的值組合
- R dbplyr distinct.tbl_lazy 子集不同/唯一行
- R dbplyr backend-sqlite 後端:SQLite
- R dbplyr pivot_wider.tbl_lazy 將數據從長軸轉向寬軸
- R dbplyr build_sql 構建 SQL 字符串。
- R dbplyr mutate.tbl_lazy 創建、修改和刪除列
- R dbplyr sql_expr 從 R 表達式生成 SQL
- R dbplyr get_returned_rows 提取並檢查返回的行
- R dbplyr dbplyr_uncount “計數”數據庫表
- R dbplyr backend-odbc 後端:ODBC
- R dbplyr head.tbl_lazy 對第一行進行子集化
- R dbplyr db-quote SQL 轉義/引用泛型
- R dbplyr backend-oracle 後端:甲骨文
- R dbplyr backend-snowflake 後端:雪花
- R dbplyr lahman 緩存並檢索 Lahman 棒球數據庫的 src_sqlite。
- R dbplyr backend-redshift 後端:紅移
- R dbplyr partial_eval 部分評估表達式。
- R dbplyr group_by.tbl_lazy 按一個或多個變量分組
- R dbplyr tbl_lazy 創建本地惰性 tibble
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Use a local data frame in a dbplyr query。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。