缓存更高级的形式是memoise 包,将已知结果存入可检索的缓存,加快运行速度。 library(microbenchmark) test <- function(x){ a <- x*100000+x*10000000 a <- a^3 a } test_result <- memoise ::memoise(test) microbenchmark(times = 10, unit="ms", test_result(1000), test(1000)) # 结果,速度确实差了挺多的 Unit
来看一个官网里面的global的案例: library(tm) library(wordcloud) library(memoise) # The list of valid books books "The Merchant of Venice" = "merchant", "Romeo and Juliet" = "romeo") # Using "memoise " to automatically cache the results getTermMatrix <- memoise(function(book) { # Careful not to let 这里的memoise函数是缓存的功能,之后就跟正常使用的代码一样。
0.13 tibble_1.4.2 ## [37] lazyeval_0.2.1 magrittr_1.5 mime_0.5 ## [40] memoise 0.13 tibble_1.4.2 ## [37] lazyeval_0.2.1 magrittr_1.5 mime_0.5 ## [40] memoise
# [7] digest_0.6.15 htmltools_0.3.6 viridis_0.5.0 ## [10] magrittr_1.5 memoise
## [81] broom_0.7.0 rstatix_0.6.0 tibble_3.0.2 pheatmap_1.0.12 ## [85] memoise
usethis_1.5.1 #> [34] withr_2.1.2 cli_1.1.0 crayon_1.3.4 #> [37] memoise
digest_0.6.15 htmltools_0.3.6 viridis_0.5.0 ## [10] magrittr_1.5 memoise
withr_3.0.2 cachem_1.0.8 tools_4.3.3 parallel_4.3.3 [26] tzdb_0.4.0 memoise
我通过R语言汇中的“tm”、“wordcloud”和“memoise”三个包来生成单词云,分别对每个航空公司以及所有航空公司整体的正面和负面评价进行了分析。
GlobalOptions_0.1.2 fs_1.6.5 zlibbioc_1.52.0 [13] vctrs_0.6.5 memoise
nnet_7.3-12 lazyeval_0.2.2 survival_2.44-1.1 ## [37] crayon_1.3.4 memoise
在《R的极客理想-工具篇》一书中,我介绍了30多个包的使用,包括 时间序列包(zoo、xts、xtsExtra),性能监控包(memoise、profr、lineprof),R跨平台通信包(Rserve
SummarizedExperiment_1.32.0 ## [113] highr_0.10 broom_1.0.5 ## [115] memoise
BiocParallel_1.16.2 SummarizedExperiment_1.12.0 magrittr_1.5 ## [31] crayon_1.3.4 memoise