当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dbplyr mutate.tbl_lazy 创建、修改和删除列


这些是 dplyr mutate()transmute() 泛型的方法。它们被转换为 SQL 查询的 SELECT 子句中的计算表达式。

用法

# S3 method for tbl_lazy
mutate(
  .data,
  ...,
  .by = NULL,
  .keep = c("all", "used", "unused", "none"),
  .before = NULL,
  .after = NULL
)

参数

.data

由数据库查询支持的惰性 DataFrame 。

...

< data-masking > 变量,或变量的函数。使用desc() 按降序对变量进行排序。

.by

[Experimental]

< tidy-select > (可选)仅针对此操作选择要分组的列,作为 group_by() 的替代方案。有关详细信息和示例,请参阅?dplyr_by

.keep

控制 .data 中的哪些列保留在输出中。始终保留分组列和 ... 创建的列。

  • "all" 保留 .data 中的所有列。这是默认设置。

  • "used" 仅保留 ... 中使用的列以创建新列。这对于检查您的工作非常有用,因为它并排显示输入和输出。

  • "unused" 仅保留 ... 中未使用的列以创建新列。如果您生成新列,但不再需要用于生成它们的列,这非常有用。

  • "none" 不保留 .data 中的任何额外列。仅保留... 创建的分组变量和列。

.before, .after

< tidy-select > (可选)控制新列应出现的位置(默认设置是添加到右侧)。有关更多详细信息,请参阅relocate()

另一个tbl_lazy。使用show_query()查看生成的查询,并使用collect()执行查询并将数据返回到R。

例子

library(dplyr, warn.conflicts = FALSE)

db <- memdb_frame(x = 1:5, y = 5:1)
db %>%
  mutate(a = (x + y) / 2, b = sqrt(x^2L + y^2L)) %>%
  show_query()
#> <SQL>
#> SELECT *, (`x` + `y`) / 2.0 AS `a`, SQRT((POWER(`x`, 2)) + POWER(`y`, 2)) AS `b`
#> FROM `dbplyr_019`

# dbplyr automatically creates subqueries as needed
db %>%
  mutate(x1 = x + 1, x2 = x1 * 2) %>%
  show_query()
#> <SQL>
#> SELECT *, `x1` * 2.0 AS `x2`
#> FROM (
#>   SELECT *, `x` + 1.0 AS `x1`
#>   FROM `dbplyr_019`
#> )
源代码:R/verb-mutate.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Create, modify, and delete columns。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。