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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。