當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。