这是tidyr::expand 泛型的方法。它不会显式对结果进行排序,因此顺序可能与 expand()
针对数据帧返回的顺序不同。
参数
- data
-
由数据库查询支持的惰性 DataFrame 。
- ...
-
要扩展的列规范。有关更多详细信息,请参阅tidyr::expand。
- .name_repair
-
有问题的列名的处理:
-
"minimal"
:没有名称修复或检查,超出基本存在, -
"unique"
:确保名称唯一且不为空, -
"check_unique"
:(默认值),没有名称修复,但检查它们是unique
, -
"universal"
:命名为unique
和语法 -
函数:应用自定义名称修复(例如,
.name_repair = make.names
用于基本 R 样式的名称)。 -
purrr-style 匿名函数,请参阅
rlang::as_function()
此参数作为
repair
传递到vctrs::vec_as_names()
。有关这些条款以及用于执行这些条款的策略的更多详细信息,请参阅此处。 -
值
另一个tbl_lazy
。使用show_query()
查看生成的查询,并使用collect()
执行查询并将数据返回到R。
例子
fruits <- memdb_frame(
type = c("apple", "orange", "apple", "orange", "orange", "orange"),
year = c(2010, 2010, 2012, 2010, 2010, 2012),
size = c("XS", "S", "M", "S", "S", "M"),
weights = rnorm(6)
)
# All possible combinations ---------------------------------------
fruits %>% tidyr::expand(type)
#> # Source: SQL [2 x 1]
#> # Database: sqlite 3.41.2 [:memory:]
#> type
#> <chr>
#> 1 apple
#> 2 orange
fruits %>% tidyr::expand(type, size)
#> # Source: SQL [6 x 2]
#> # Database: sqlite 3.41.2 [:memory:]
#> type size
#> <chr> <chr>
#> 1 apple XS
#> 2 apple S
#> 3 apple M
#> 4 orange XS
#> 5 orange S
#> 6 orange M
# Only combinations that already appear in the data ---------------
fruits %>% tidyr::expand(nesting(type, size))
#> # Source: SQL [4 x 2]
#> # Database: sqlite 3.41.2 [:memory:]
#> type size
#> <chr> <chr>
#> 1 apple XS
#> 2 orange S
#> 3 apple M
#> 4 orange M
相关用法
- R dbplyr escape 转义/引用字符串。
- R dbplyr backend-teradata 后端:Teradata
- 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 collapse.tbl_sql 计算查询的结果
- R dbplyr sql_expr 从 R 表达式生成 SQL
- R dbplyr get_returned_rows 提取并检查返回的行
- R dbplyr dbplyr_uncount “计数”数据库表
- R dbplyr count.tbl_lazy 按组计数观察值
- R dbplyr backend-odbc 后端:ODBC
- R dbplyr head.tbl_lazy 对第一行进行子集化
- R dbplyr db-quote SQL 转义/引用泛型
- R dbplyr copy_inline 在 dbplyr 查询中使用本地 DataFrame
- 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
- R dbplyr backend-hana 后端:SAP HANA
- R dbplyr translate_sql 将表达式转换为 SQL
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Expand SQL tables to include all possible combinations of values。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。