1  Fastverse

1.1 fastverse

Show the code
pak::pkg_deps("data.table") 
#> # A data frame: 1 × 33
#>   ref     type  direct directpkg status package version license needscompilation
#>   <chr>   <chr> <lgl>  <lgl>     <chr>  <chr>   <chr>   <chr>   <lgl>           
#> 1 data.t… stan… TRUE   TRUE      OK     data.t… 1.18.0  MPL-2.… FALSE           
#> # ℹ 24 more variables: priority <chr>, md5sum <chr>, sha256 <chr>,
#> #   filesize <int>, built <chr>, platform <chr>, rversion <chr>,
#> #   repotype <chr>, repodir <chr>, target <chr>, deps <list>, mirror <chr>,
#> #   sources <list>, remote <list>, error <list>, metadata <list>,
#> #   dep_types <list>, params <list>, sysreqs <chr>, os_type <chr>,
#> #   cache_status <chr>, lib_status <chr>, old_version <chr>, new_version <chr>
pak::pkg_deps("collapse")
#> # A data frame: 2 × 33
#>   ref     type  direct directpkg status package version license needscompilation
#>   <chr>   <chr> <lgl>  <lgl>     <chr>  <chr>   <chr>   <chr>   <lgl>           
#> 1 Rcpp    stan… FALSE  FALSE     OK     Rcpp    1.1.0   GPL (>… FALSE           
#> 2 collap… stan… TRUE   TRUE      OK     collap… 2.1.5   GPL (>… FALSE           
#> # ℹ 24 more variables: priority <chr>, md5sum <chr>, sha256 <chr>,
#> #   filesize <int>, built <chr>, platform <chr>, rversion <chr>,
#> #   repotype <chr>, repodir <chr>, target <chr>, deps <list>, mirror <chr>,
#> #   sources <list>, remote <list>, error <list>, metadata <list>,
#> #   dep_types <list>, params <list>, sysreqs <chr>, os_type <chr>,
#> #   cache_status <chr>, lib_status <chr>, old_version <chr>, new_version <chr>

1.2 日期时间

Show the code
pak::pkg_deps("fasttime")
#> # A data frame: 1 × 33
#>   ref     type  direct directpkg status package version license needscompilation
#>   <chr>   <chr> <lgl>  <lgl>     <chr>  <chr>   <chr>   <chr>   <lgl>           
#> 1 fastti… stan… TRUE   TRUE      OK     fastti… 1.1-0   GPL-2   FALSE           
#> # ℹ 24 more variables: priority <chr>, md5sum <chr>, sha256 <chr>,
#> #   filesize <int>, built <chr>, platform <chr>, rversion <chr>,
#> #   repotype <chr>, repodir <chr>, target <chr>, deps <list>, mirror <chr>,
#> #   sources <list>, remote <list>, error <list>, metadata <list>,
#> #   dep_types <list>, params <list>, sysreqs <chr>, os_type <chr>,
#> #   cache_status <chr>, lib_status <chr>, old_version <chr>, new_version <chr>

1.3 字符串/文本

Show the code
pak::pkg_deps("stringi")   
#> # A data frame: 1 × 33
#>   ref     type  direct directpkg status package version license needscompilation
#>   <chr>   <chr> <lgl>  <lgl>     <chr>  <chr>   <chr>   <chr>   <lgl>           
#> 1 stringi stan… TRUE   TRUE      OK     stringi 1.8.7   file L… FALSE           
#> # ℹ 24 more variables: priority <chr>, md5sum <chr>, sha256 <chr>,
#> #   filesize <int>, built <chr>, platform <chr>, rversion <chr>,
#> #   repotype <chr>, repodir <chr>, target <chr>, deps <list>, mirror <chr>,
#> #   sources <list>, remote <list>, error <list>, metadata <list>,
#> #   dep_types <list>, params <list>, sysreqs <chr>, os_type <chr>,
#> #   cache_status <chr>, lib_status <chr>, old_version <chr>, new_version <chr>
# 匹配 
pak::pkg_deps("fastmatch")
#> # A data frame: 1 × 33
#>   ref     type  direct directpkg status package version license needscompilation
#>   <chr>   <chr> <lgl>  <lgl>     <chr>  <chr>   <chr>   <chr>   <lgl>           
#> 1 fastma… stan… TRUE   TRUE      OK     fastma… 1.1-6   GPL-2   FALSE           
#> # ℹ 24 more variables: priority <chr>, md5sum <chr>, sha256 <chr>,
#> #   filesize <int>, built <chr>, platform <chr>, rversion <chr>,
#> #   repotype <chr>, repodir <chr>, target <chr>, deps <list>, mirror <chr>,
#> #   sources <list>, remote <list>, error <list>, metadata <list>,
#> #   dep_types <list>, params <list>, sysreqs <chr>, os_type <chr>,
#> #   cache_status <chr>, lib_status <chr>, old_version <chr>, new_version <chr>

1.4 data.table 语法

DT[i, j, by]
##  R:                 i                 j        by
## SQL:  where | order by   select | update  group by

https://r-datatable.com/datatable_cheatsheet.pdf

dt[, lapply(.SD, mean), .SDcols = c("a", "b")]

https://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.html

1.4.1 dtplyr 语法

DTPLYR 使用 DPLYR 的语法s实现 data.table 的速度;编写 DPLYR(和 TidyR)代码,DTPLYR 将其转换为等效的 Data.Table。

1.4.2 组学数据示例

Show the code
library(data.table) 

# 模拟数据
df <- fread(input = "data/data.table/df.tsv")  

# 用于行排序,列排序 
library(collapse) 
system.time(     
    df <- df |>      
        roworder(gene) |>      
        colorder(order(colnames(df))) 
    )  
#>    user  system elapsed 
#>    0.37    0.06    0.61

df[1:3,1:2]
#>      gene TCGA-00-XXXX-01B
#>    <char>            <num>
#> 1: gene_1         628.4316
#> 2: gene_1         215.7677
#> 3: gene_1         133.8280

# 按行标识符重复取平均            
system.time(                               
    df_rowmean <- df |>      
        fgroup_by(gene) |>         
        fmean()                  
    )  
#>    user  system elapsed 
#>    0.19    0.21    0.44

df_rowmean[1,1:2]
#>      gene TCGA-00-XXXX-01B
#>    <char>            <num>
#> 1: gene_1         326.0091


# 按列重复取平均,矩阵思路
library(collapse) 
system.time( 
    df_colmean <- t(df_rowmean[,-1]) |>      
        fmean(g = colnames(df_rowmean[,-1])) |>      
        t() |>      
        as.data.frame() |>      
        fmutate(gene = df_rowmean$gene) |>      
        dplyr::relocate(gene,.before = 1) )
#>    user  system elapsed 
#>    1.76    0.43    2.39

1.5 Prerequisites

Show the code
devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.5.1 (2025-06-13 ucrt)
#>  os       Windows 11 x64 (build 26100)
#>  system   x86_64, mingw32
#>  ui       RTerm
#>  language en
#>  collate  Chinese (Simplified)_China.utf8
#>  ctype    Chinese (Simplified)_China.utf8
#>  tz       Asia/Shanghai
#>  date     2026-01-06
#>  pandoc   3.6.3 @ D:/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)
#>  quarto   NA @ D:\\RStudio\\RESOUR~1\\app\\bin\\quarto\\bin\\quarto.exe
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date (UTC) lib source
#>  cachem        1.1.0   2024-05-16 [1] CRAN (R 4.5.1)
#>  callr         3.7.6   2024-03-25 [1] CRAN (R 4.5.1)
#>  cli           3.6.5   2025-04-23 [1] CRAN (R 4.5.1)
#>  collapse    * 2.1.5   2025-11-19 [1] CRAN (R 4.5.2)
#>  data.table  * 1.17.8  2025-07-10 [1] CRAN (R 4.5.1)
#>  devtools      2.4.6   2025-10-03 [1] CRAN (R 4.5.2)
#>  digest        0.6.38  2025-11-12 [1] CRAN (R 4.5.2)
#>  dplyr         1.1.4   2023-11-17 [1] CRAN (R 4.5.1)
#>  ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.5.1)
#>  evaluate      1.0.5   2025-08-27 [1] CRAN (R 4.5.2)
#>  fastmap       1.2.0   2024-05-15 [1] CRAN (R 4.5.1)
#>  fs            1.6.6   2025-04-12 [1] CRAN (R 4.5.1)
#>  generics      0.1.4   2025-05-09 [1] CRAN (R 4.5.1)
#>  glue          1.8.0   2024-09-30 [1] CRAN (R 4.5.1)
#>  htmltools     0.5.8.1 2024-04-04 [1] CRAN (R 4.5.1)
#>  htmlwidgets   1.6.4   2023-12-06 [1] CRAN (R 4.5.1)
#>  jsonlite      2.0.0   2025-03-27 [1] CRAN (R 4.5.1)
#>  knitr         1.50    2025-03-16 [1] CRAN (R 4.5.1)
#>  lifecycle     1.0.4   2023-11-07 [1] CRAN (R 4.5.1)
#>  magrittr      2.0.4   2025-09-12 [1] CRAN (R 4.5.2)
#>  memoise       2.0.1   2021-11-26 [1] CRAN (R 4.5.1)
#>  pak           0.9.0   2025-05-27 [1] CRAN (R 4.5.1)
#>  pillar        1.11.1  2025-09-17 [1] CRAN (R 4.5.2)
#>  pkgbuild      1.4.8   2025-05-26 [1] CRAN (R 4.5.1)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.5.1)
#>  pkgload       1.4.1   2025-09-23 [1] CRAN (R 4.5.2)
#>  processx      3.8.6   2025-02-21 [1] CRAN (R 4.5.1)
#>  ps            1.9.1   2025-04-12 [1] CRAN (R 4.5.1)
#>  purrr         1.2.0   2025-11-04 [1] CRAN (R 4.5.2)
#>  R6            2.6.1   2025-02-15 [1] CRAN (R 4.5.1)
#>  Rcpp          1.1.0   2025-07-02 [1] CRAN (R 4.5.1)
#>  remotes       2.5.0   2024-03-17 [1] CRAN (R 4.5.1)
#>  rlang         1.1.6   2025-04-11 [1] CRAN (R 4.5.1)
#>  rmarkdown     2.30    2025-09-28 [1] CRAN (R 4.5.2)
#>  rstudioapi    0.17.1  2024-10-22 [1] CRAN (R 4.5.1)
#>  sessioninfo   1.2.3   2025-02-05 [1] CRAN (R 4.5.1)
#>  tibble        3.3.0   2025-06-08 [1] CRAN (R 4.5.1)
#>  tidyselect    1.2.1   2024-03-11 [1] CRAN (R 4.5.1)
#>  usethis       3.2.1   2025-09-06 [1] CRAN (R 4.5.2)
#>  utf8          1.2.6   2025-06-08 [1] CRAN (R 4.5.1)
#>  vctrs         0.6.5   2023-12-01 [1] CRAN (R 4.5.1)
#>  withr         3.0.2   2024-10-28 [1] CRAN (R 4.5.1)
#>  xfun          0.54    2025-10-30 [1] CRAN (R 4.5.2)
#> 
#>  [1] D:/R-4.5.1/library
#>  * ── Packages attached to the search path.
#> 
#> ──────────────────────────────────────────────────────────────────────────────