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


R dtplyr collect.dtplyr_step 强制计算惰性 data.table


用法

# S3 method for dtplyr_step
collect(x, ...)

# S3 method for dtplyr_step
compute(x, name = unique_name(), ...)

# S3 method for dtplyr_step
as.data.table(x, keep.rownames = FALSE, ...)

# S3 method for dtplyr_step
as.data.frame(x, ...)

# S3 method for dtplyr_step
as_tibble(x, ..., .name_repair = "check_unique")

参数

x

lazy_dt

...

其他方法使用的参数。

name

中间数据表的名称。

keep.rownames

被忽略,因为 dplyr 从不保留行名。

.name_repair

有问题的列名的处理

例子

library(dplyr, warn.conflicts = FALSE)

dt <- lazy_dt(mtcars)

# Generate translation
avg_mpg <- dt %>%
  filter(am == 1) %>%
  group_by(cyl) %>%
  summarise(mpg = mean(mpg))

# Show translation and temporarily compute result
avg_mpg
#> Source: local data table [3 x 2]
#> Call:   `_DT3`[am == 1][, .(mpg = mean(mpg)), keyby = .(cyl)]
#> 
#>     cyl   mpg
#>   <dbl> <dbl>
#> 1     4  28.1
#> 2     6  20.6
#> 3     8  15.4
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

# compute and return tibble
avg_mpg_tb <- as_tibble(avg_mpg)
avg_mpg_tb
#> # A tibble: 3 × 2
#>     cyl   mpg
#>   <dbl> <dbl>
#> 1     4  28.1
#> 2     6  20.6
#> 3     8  15.4

# compute and return data.table
avg_mpg_dt <- data.table::as.data.table(avg_mpg)
avg_mpg_dt
#>    cyl      mpg
#> 1:   4 28.07500
#> 2:   6 20.56667
#> 3:   8 15.40000

# modify translation to use intermediate assignment
compute(avg_mpg)
#> Source: local data table [3 x 2]
#> Call:
#>   _DT4 <- `_DT3`[am == 1][, .(mpg = mean(mpg)), keyby = .(cyl)]
#>   `_DT4`
#> 
#>     cyl   mpg
#>   <dbl> <dbl>
#> 1     4  28.1
#> 2     6  20.6
#> 3     8  15.4
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

源代码:R/step.R

相关用法


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