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


R dtplyr mutate.dtplyr_step 创建和修改列


这是 dplyr mutate() 泛型的方法。它被转换为 [.data.tablej 参数,使用 := 修改 "in place"。如果提供了.before.after,则通过调用data.table::setcolorder() 来重新定位新列。

用法

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

参数

.data

一个lazy_dt()

...

< data-masking > Name-value 对。名称给出输出中列的名称。

该值可以是:

  • 长度为1的向量,将被回收到正确的长度。

  • 与当前组(或整个数据帧,如果未分组)长度相同的向量。

  • NULL ,删除该列。

  • DataFrame 或小标题,用于在输出中创建多个列。

.by

[Experimental]

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

.keep

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

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

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

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

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

注意:使用 dtplyr .keep 将仅适用于作为符号传递的列名称,并且不适用于其他工作流程(例如 eval(parse(text = "x + 1")) )

.before, .after

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

例子

library(dplyr, warn.conflicts = FALSE)

dt <- lazy_dt(data.frame(x = 1:5, y = 5:1))
dt %>%
  mutate(a = (x + y) / 2, b = sqrt(x^2 + y^2))
#> Source: local data table [5 x 4]
#> Call:   copy(`_DT24`)[, `:=`(a = (x + y)/2, b = sqrt(x^2 + y^2))]
#> 
#>       x     y     a     b
#>   <int> <int> <dbl> <dbl>
#> 1     1     5     3  5.10
#> 2     2     4     3  4.47
#> 3     3     3     3  4.24
#> 4     4     2     3  4.47
#> 5     5     1     3  5.10
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

# It uses a more sophisticated translation when newly created variables
# are used in the same expression
dt %>%
  mutate(x1 = x + 1, x2 = x1 + 1)
#> Source: local data table [5 x 4]
#> Call:   copy(`_DT24`)[, `:=`(c("x1", "x2"), {
#>     x1 <- x + 1
#>     x2 <- x1 + 1
#>     .(x1, x2)
#> })]
#> 
#>       x     y    x1    x2
#>   <int> <int> <dbl> <dbl>
#> 1     1     5     2     3
#> 2     2     4     3     4
#> 3     3     3     4     5
#> 4     4     2     5     6
#> 5     5     1     6     7
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results
源代码:R/step-mutate.R

相关用法


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