compute()
將結果存儲在遠程臨時表中。 collect()
將數據檢索到本地 tibble 中。 collapse()
略有不同:它不強製計算,而是強製生成 SQL 查詢。有時需要這樣做來解決 dplyr 的 SQL 生成中的錯誤。
所有函數都保留分組和排序。
也可以看看
copy_to()
,與 collect()
相反:它獲取本地數據幀並將其上傳到遠程源。
例子
mtcars2 <- dbplyr::src_memdb() %>%
copy_to(mtcars, name = "mtcars2-cc", overwrite = TRUE)
remote <- mtcars2 %>%
filter(cyl == 8) %>%
select(mpg:drat)
# Compute query and save in remote table
compute(remote)
#> # Source: table<dbplyr_001> [?? x 5]
#> # Database: sqlite 3.41.2 [:memory:]
#> mpg cyl disp hp drat
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 18.7 8 360 175 3.15
#> 2 14.3 8 360 245 3.21
#> 3 16.4 8 276. 180 3.07
#> 4 17.3 8 276. 180 3.07
#> 5 15.2 8 276. 180 3.07
#> 6 10.4 8 472 205 2.93
#> 7 10.4 8 460 215 3
#> 8 14.7 8 440 230 3.23
#> 9 15.5 8 318 150 2.76
#> 10 15.2 8 304 150 3.15
#> # ℹ more rows
# Compute query bring back to this session
collect(remote)
#> # A tibble: 14 × 5
#> mpg cyl disp hp drat
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 18.7 8 360 175 3.15
#> 2 14.3 8 360 245 3.21
#> 3 16.4 8 276. 180 3.07
#> 4 17.3 8 276. 180 3.07
#> 5 15.2 8 276. 180 3.07
#> 6 10.4 8 472 205 2.93
#> 7 10.4 8 460 215 3
#> 8 14.7 8 440 230 3.23
#> 9 15.5 8 318 150 2.76
#> 10 15.2 8 304 150 3.15
#> 11 13.3 8 350 245 3.73
#> 12 19.2 8 400 175 3.08
#> 13 15.8 8 351 264 4.22
#> 14 15 8 301 335 3.54
# Creates a fresh query based on the generated SQL
collapse(remote)
#> # Source: SQL [?? x 5]
#> # Database: sqlite 3.41.2 [:memory:]
#> mpg cyl disp hp drat
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 18.7 8 360 175 3.15
#> 2 14.3 8 360 245 3.21
#> 3 16.4 8 276. 180 3.07
#> 4 17.3 8 276. 180 3.07
#> 5 15.2 8 276. 180 3.07
#> 6 10.4 8 472 205 2.93
#> 7 10.4 8 460 215 3
#> 8 14.7 8 440 230 3.23
#> 9 15.5 8 318 150 2.76
#> 10 15.2 8 304 150 3.15
#> # ℹ more rows
相關用法
- R dplyr copy_to 將本地數據幀複製到遠程src
- R dplyr consecutive_id 為連續組合生成唯一標識符
- R dplyr coalesce 找到第一個非缺失元素
- R dplyr context 有關“當前”組或變量的信息
- R dplyr count 計算每組中的觀察結果
- R dplyr cumall 任何、全部和平均值的累積版本
- R dplyr case_match 通用向量化 switch()
- R dplyr c_across 合並多列的值
- R dplyr cross_join 交叉連接
- R dplyr case_when 通用向量化 if-else
- R dplyr group_trim 修剪分組結構
- R dplyr slice 使用行的位置對行進行子集化
- R dplyr sample_n 從表中采樣 n 行
- R dplyr row_number 整數排名函數
- R dplyr band_members 樂隊成員
- R dplyr mutate-joins 變異連接
- R dplyr nth 從向量中提取第一個、最後一個或第 n 個值
- R dplyr group_split 按組分割 DataFrame
- R dplyr mutate 創建、修改和刪除列
- R dplyr order_by 用於排序窗口函數輸出的輔助函數
- R dplyr percent_rank 比例排名函數
- R dplyr recode 重新編碼值
- R dplyr starwars 星球大戰人物
- R dplyr desc 降序
- R dplyr between 檢測值落在指定範圍內的位置
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Force computation of a database query。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。