diff --git a/.dev/CRAN_Release.cmd b/.dev/CRAN_Release.cmd index e7790ece8e..27af3cdc78 100644 --- a/.dev/CRAN_Release.cmd +++ b/.dev/CRAN_Release.cmd @@ -323,7 +323,7 @@ Rdevel-strict-[gcc|clang] CMD check data.table_1.16.99.tar.gz Rdevel-strict-[gcc|clang] isTRUE(.Machine$sizeof.longdouble==0) # check noLD is being tested options(repos = "http://cloud.r-project.org") -install.packages(c("bit64", "bit", "R.utils", "xts", "zoo", "yaml", "knitr", "markdown"), +install.packages(c("bit64", "bit", "R.utils", "xts", "zoo", "yaml", "litedown"), Ncpus=4) # Issue #5491 showed that CRAN is running UBSAN on .Rd examples which found an error so we now run full R CMD check q("no") diff --git a/.github/workflows/R-CMD-check-occasional.yaml b/.github/workflows/R-CMD-check-occasional.yaml index ec395b8447..a1d04b1e21 100644 --- a/.github/workflows/R-CMD-check-occasional.yaml +++ b/.github/workflows/R-CMD-check-occasional.yaml @@ -111,7 +111,7 @@ jobs: TEST_DATA_TABLE_WITH_OTHER_PACKAGES=as.character(run_other) ) - do_vignettes = requireNamespace("knitr", quietly=TRUE) + do_vignettes = requireNamespace("litedown", quietly=TRUE) build_args = NULL check_args = c("--no-manual", "--as-cran") diff --git a/DESCRIPTION b/DESCRIPTION index ffcd4282a5..b155f4492a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -3,12 +3,13 @@ Version: 1.17.99 Title: Extension of `data.frame` Depends: R (>= 3.4.0) Imports: methods -Suggests: bit64 (>= 4.0.0), bit (>= 4.0.4), R.utils, xts, zoo (>= 1.8-1), yaml, knitr, markdown +Suggests: bit64 (>= 4.0.0), bit (>= 4.0.4), R.utils, xts, zoo (>= 1.8-1), yaml, litedown +Enhances: knitr, xfun Description: Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns, friendly and fast character-separated-value read/write. Offers a natural and flexible syntax, for faster development. License: MPL-2.0 | file LICENSE URL: https://r-datatable.com, https://Rdatatable.gitlab.io/data.table, https://github.com/Rdatatable/data.table BugReports: https://github.com/Rdatatable/data.table/issues -VignetteBuilder: knitr +VignetteBuilder: litedown Encoding: UTF-8 ByteCompile: TRUE Authors@R: c( diff --git a/NAMESPACE b/NAMESPACE index 3fa8575448..afd9d51b5f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -109,7 +109,10 @@ if (getRversion() >= "4.0.0") { # version of R (and that is checked in .onLoad with error if not). export(.rbind.data.table) # only export in R<4.0.0 where it is still used; R-devel now detects it is missing doc, #5600 } -if (getRversion() >= "3.6.0") S3method(knitr::knit_print, data.table) # else manual delayed registration from the onLoad hook +if (getRversion() >= "3.6.0") { + S3method(knitr::knit_print, data.table) + S3method(xfun::record_print, data.table) +} # else manual delayed registration from the onLoad hook S3method(dim, data.table) S3method(dimnames, data.table) S3method("dimnames<-", data.table) diff --git a/R/onLoad.R b/R/onLoad.R index 2e0bd870bc..12cc93db1a 100644 --- a/R/onLoad.R +++ b/R/onLoad.R @@ -67,6 +67,12 @@ setHook(packageEvent("knitr", "onLoad"), function(...) { registerS3method("knit_print", "data.table", knit_print.data.table, envir = asNamespace("knitr")) }) + if (isNamespaceLoaded("xfun")) { + registerS3method("record_print", "data.table", record_print.data.table, envir = asNamespace("xfun")) + } + setHook(packageEvent("xfun", "onLoad"), function(...) { + registerS3method("record_print", "data.table", record_print.data.table, envir = asNamespace("xfun")) + }) } # Set options for the speed boost in v1.8.0 by avoiding 'default' arg of getOption(,default=) diff --git a/R/print.data.table.R b/R/print.data.table.R index 1504b32341..88ff4ea505 100644 --- a/R/print.data.table.R +++ b/R/print.data.table.R @@ -294,7 +294,13 @@ trunc_cols_message = function(not_printed, abbs, class, col.names){ } # Maybe add a method for repr::repr_text. See https://github.com/Rdatatable/data.table/issues/933#issuecomment-220237965 +# nocov start knit_print.data.table = function(x, ...) { if (!shouldPrint(x)) return(invisible(x)) NextMethod() } +record_print.data.table = function(x, ...) { + if (!shouldPrint(x)) return(character()) + NextMethod() +} +# nocov end diff --git a/inst/tests/other.Rraw b/inst/tests/other.Rraw index a80f91b90b..61538e3f00 100644 --- a/inst/tests/other.Rraw +++ b/inst/tests/other.Rraw @@ -182,6 +182,9 @@ if (loaded[["knitr"]]) { # Which is fine and works thanks to cedta(). DT = data.table(x=1, y=2) test(11, kable(DT), output="x.*y.*1.*2") + invisible(knit(testDir("knitr.Rmd"), quiet=TRUE)) + cat(readLines("knitr.md"), sep="\n") + invisible(file.remove("knitr.md")) } if (loaded[["parallel"]]) { diff --git a/tests/knitr.R b/tests/knitr.R deleted file mode 100644 index 678510e11d..0000000000 --- a/tests/knitr.R +++ /dev/null @@ -1,9 +0,0 @@ -if (!suppressPackageStartupMessages(requireNamespace("knitr", quietly=TRUE))) { - cat(readLines("knitr.Rout.mock", warn=FALSE), sep="\n") - q('no') -} - -library(knitr) -invisible(knit("knitr.Rmd", quiet=TRUE)) -cat(readLines("knitr.md"), sep="\n") -invisible(file.remove("knitr.md")) diff --git a/tests/knitr.Rout.save b/tests/knitr.Rout.save deleted file mode 100644 index 790006d3a2..0000000000 --- a/tests/knitr.Rout.save +++ /dev/null @@ -1,72 +0,0 @@ - -R version 4.3.2 (2023-10-31) -- "Eye Holes" -Copyright (C) 2023 The R Foundation for Statistical Computing -Platform: x86_64-pc-linux-gnu (64-bit) - -R is free software and comes with ABSOLUTELY NO WARRANTY. -You are welcome to redistribute it under certain conditions. -Type 'license()' or 'licence()' for distribution details. - -R is a collaborative project with many contributors. -Type 'contributors()' for more information and -'citation()' on how to cite R or R packages in publications. - -Type 'demo()' for some demos, 'help()' for on-line help, or -'help.start()' for an HTML browser interface to help. -Type 'q()' to quit R. - -> if (!suppressPackageStartupMessages(requireNamespace("knitr", quietly=TRUE))) { -+ cat(readLines("knitr.Rout.mock", warn=FALSE), sep="\n") -+ q('no') -+ } -> -> library(knitr) -> invisible(knit("knitr.Rmd", quiet=TRUE)) -> cat(readLines("knitr.md"), sep="\n") - -```r -require(data.table) # print? -DT = data.table(x=1:3, y=4:6) # no -DT # yes -``` - -``` -## x y -## -## 1: 1 4 -## 2: 2 5 -## 3: 3 6 -``` - -```r -DT[, z := 7:9] # no -print(DT[, z := 10:12]) # yes -``` - -``` -## x y z -## -## 1: 1 4 10 -## 2: 2 5 11 -## 3: 3 6 12 -``` - -```r -if (1 < 2) DT[, a := 1L] # no -DT # yes -``` - -``` -## x y z a -## -## 1: 1 4 10 1 -## 2: 2 5 11 1 -## 3: 3 6 12 1 -``` -Some text. - -> invisible(file.remove("knitr.md")) -> -> proc.time() - user system elapsed - 0.247 0.044 0.283 diff --git a/tests/litedown.R b/tests/litedown.R new file mode 100644 index 0000000000..3530194f9b --- /dev/null +++ b/tests/litedown.R @@ -0,0 +1,15 @@ +if (!suppressPackageStartupMessages(requireNamespace("litedown", quietly = TRUE))) { + cat(readLines("litedown.Rout.mock", warn = FALSE), sep = "\n") + q("no") +} + +# Load litedown and render the Rmd file +library(litedown) +litedown::reactor(comment="# ", print=xfun::record_print) +invisible(litedown::fuse("litedown.Rmd", output = "litedown.md")) + +# Print the rendered markdown content +cat(readLines("litedown.md"), sep = "\n") + +# Clean up +invisible(file.remove("litedown.md")) \ No newline at end of file diff --git a/tests/knitr.Rmd b/tests/litedown.Rmd similarity index 79% rename from tests/knitr.Rmd rename to tests/litedown.Rmd index fbaada21ab..070889cd59 100644 --- a/tests/knitr.Rmd +++ b/tests/litedown.Rmd @@ -1,4 +1,4 @@ -```{r test_id, message=FALSE, results="show", echo=TRUE, warning=FALSE} +```{r, test_id, message=FALSE, results="show", echo=TRUE, warning=FALSE} require(data.table) # print? DT = data.table(x=1:3, y=4:6) # no DT # yes diff --git a/tests/knitr.Rout.mock b/tests/litedown.Rout.mock similarity index 100% rename from tests/knitr.Rout.mock rename to tests/litedown.Rout.mock diff --git a/vignettes/_translation_links.R b/vignettes/_translation_links.R index ff70a612b7..cd0c1e611f 100644 --- a/vignettes/_translation_links.R +++ b/vignettes/_translation_links.R @@ -1,23 +1,38 @@ # build a link list of alternative languages (may be character(0)) # idea is to look like 'Other languages: en | fr | de' -.write.translation.links <- function(fmt) { - url = "https://rdatatable.gitlab.io/data.table/articles" - path = dirname(knitr::current_input(TRUE)) - if (basename(path) == "vignettes") { - lang = "en" - } else { - lang = basename(path) - path = dirname(path) - } - translation = dir(path, - recursive = TRUE, - pattern = glob2rx(knitr::current_input(FALSE)) - ) - transl_lang = ifelse(dirname(translation) == ".", "en", dirname(translation)) - block = if (!all(transl_lang == lang)) { - linked_transl = sprintf("[%s](%s)", transl_lang, file.path(url, sub("(?i)\\.Rmd$", ".html", translation))) - linked_transl[transl_lang == lang] = lang - sprintf(fmt, paste(linked_transl, collapse = " | ")) - } else "" - knitr::asis_output(block) +.write.translation.links <- function() { + url = "https://rdatatable.gitlab.io/data.table/articles" + # this guard is needed because pkgdown::build_article does not use litedown + # https://github.com/yihui/knitr/issues/926#issuecomment-68503962 + knitr = isTRUE(getOption('knitr.in.progress')) + if (knitr) { + path = knitr::current_input(TRUE) + i18n_msg = knitr::opts_current$get("i18n_msg") + } else { + path = normalizePath(litedown::get_context("input")) + i18n_msg = litedown::reactor("i18n_msg") + } + rmdfile = basename(path) + rmddir = dirname(path) + if (basename(rmddir) == "vignettes") { + lang = "en" + main_dir = rmddir + } else { + lang = basename(rmddir) + main_dir = dirname(rmddir) # should be "vignettes" + } + # search for translated rmd's with same name in subfolders + translation = dir(main_dir, recursive = TRUE, pattern = glob2rx(rmdfile)) + transl_lang = dirname(translation) + transl_lang[transl_lang == "."] = "en" + if (any(transl_lang != lang)) { + link_path = file.path(url, sub("(?i)\\.Rmd$", ".html", translation)) + linked_transl = sprintf("[%s](%s)", transl_lang, link_path) + linked_transl[transl_lang == lang] = lang + block = sprintf(i18n_msg, paste(linked_transl, collapse = " | ")) + } else { + block = "" + } + cat(block) } +.write.translation.links() diff --git a/vignettes/datatable-benchmarking.Rmd b/vignettes/datatable-benchmarking.Rmd index 1a47d95303..a997505e05 100644 --- a/vignettes/datatable-benchmarking.Rmd +++ b/vignettes/datatable-benchmarking.Rmd @@ -1,17 +1,22 @@ --- title: "Benchmarking data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format: + litedown::html_format: options: toc: true number_sections: true vignette: > %\VignetteIndexEntry{Benchmarking data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- +```{r, echo = FALSE, message = FALSE} +library(data.table) +litedown::reactor(comment = "# ") +``` + -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` This document is meant to guide on measuring performance of `data.table`. Single place to document best practices and traps to avoid. diff --git a/vignettes/datatable-faq.Rmd b/vignettes/datatable-faq.Rmd index 474c5b5790..0f4ae0b254 100644 --- a/vignettes/datatable-faq.Rmd +++ b/vignettes/datatable-faq.Rmd @@ -1,14 +1,14 @@ --- title: "Frequently Asked Questions about data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format: + litedown::html_format: options: toc: true number_sections: true vignette: > %\VignetteIndexEntry{Frequently Asked Questions about data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- @@ -26,18 +26,12 @@ h2 { } -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` diff --git a/vignettes/datatable-fread-and-fwrite.Rmd b/vignettes/datatable-fread-and-fwrite.Rmd index 15a5f85571..5d2f8c8982 100644 --- a/vignettes/datatable-fread-and-fwrite.Rmd +++ b/vignettes/datatable-fread-and-fwrite.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/datatable-importing.Rmd b/vignettes/datatable-importing.Rmd index 8f07345918..a49bec9e54 100644 --- a/vignettes/datatable-importing.Rmd +++ b/vignettes/datatable-importing.Rmd @@ -1,23 +1,27 @@ --- title: "Importing data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Importing data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- +```{r, echo = FALSE, message = FALSE} +litedown::reactor(comment = "# ") +.old.th = data.table::setDTthreads(1) +``` + -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` This document is focused on using `data.table` as a dependency in other R packages. If you are interested in using `data.table` C code from a non-R application, or in calling its C functions directly, jump to the [last section](#non-r-api) of this vignette. @@ -41,7 +45,7 @@ The next thing is to define what content of `data.table` your package is using. You may also want to use just a subset of `data.table` functions; for example, some packages may simply make use of `data.table`'s high-performance CSV reader and writer, for which you can add `importFrom(data.table, fread, fwrite)` in your `NAMESPACE` file. It is also possible to import all functions from a package _excluding_ particular ones using `import(data.table, except=c(fread, fwrite))`. -Be sure to read also the note about non-standard evaluation in `data.table` in [the section on "undefined globals"](#globals) +Be sure to read also the note about non-standard evaluation in `data.table` in [the section on "undefined globals"](#globals). ## Usage @@ -283,3 +287,7 @@ result <- merge(dt, other_dt, by = "x") - **Namespace Management**: Only the functions your package explicitly imports are available, reducing the risk of function name clashes. - **Cleaner Package Loading**: Your package's dependencies are not attached to the search path, making the loading process cleaner and potentially faster. - **Easier Maintenance**: It simplifies maintenance tasks as upstream dependencies' APIs evolve. Depending too much on `Depends` can lead to conflicts and compatibility issues over time. + +```{r, echo = FALSE, message = FALSE} +data.table::setDTthreads(.old.th) +``` diff --git a/vignettes/datatable-intro.Rmd b/vignettes/datatable-intro.Rmd index cc8ffca5c6..d0ad7d3a28 100644 --- a/vignettes/datatable-intro.Rmd +++ b/vignettes/datatable-intro.Rmd @@ -1,27 +1,20 @@ --- title: "Introduction to data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Introduction to data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} -require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE -) +library(data.table) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -47,7 +40,7 @@ In this vignette, we will use [NYC-flights14](https://raw.githubusercontent.com/ We can use `data.table`'s fast-and-friendly file reader `fread` to load `flights` directly as follows: -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` @@ -641,7 +634,11 @@ DT[, print(c(a,b)), by = ID] # (1) DT[, print(list(c(a,b))), by = ID] # (2) ``` -In (1), for each group, a vector is returned, with length = 6,4,2 here. However, (2) returns a list of length 1 for each group, with its first element holding vectors of length 6,4,2. Therefore, (1) results in a length of ` 6+4+2 = `r 6+4+2``, whereas (2) returns `1+1+1=`r 1+1+1``. +```{r, echo = FALSE} +p = function(x) paste0('', paste(deparse(substitute(x)), collapse = ' '), ' = ', x, '') +``` + +In (1), for each group, a vector is returned, with length = 6,4,2 here. However, (2) returns a list of length 1 for each group, with its first element holding vectors of length 6,4,2. Therefore, (1) results in a length of `{r} p(6+4+2)`, whereas (2) returns `{r} p(1+1+1)`. Flexibility of j allows us to store any list object as an element of data.table. For example, when statistical models are fit to groups, these models can be stored in a data.table. Code is concise and easy to understand. diff --git a/vignettes/datatable-joins.Rmd b/vignettes/datatable-joins.Rmd index a0e0919c01..a63e2df0ff 100644 --- a/vignettes/datatable-joins.Rmd +++ b/vignettes/datatable-joins.Rmd @@ -1,30 +1,23 @@ --- title: "Joins in data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Joins in data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} editor_options: chunk_output_type: console --- ```{r, echo = FALSE, message = FALSE} -require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE -) +library(data.table) +litedown::reactor(comment = "# ") ``` -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` In this vignette you will learn how to perform any join operation using resources available in the `data.table` syntax. diff --git a/vignettes/datatable-keys-fast-subset.Rmd b/vignettes/datatable-keys-fast-subset.Rmd index 391b78d390..d14257d74c 100644 --- a/vignettes/datatable-keys-fast-subset.Rmd +++ b/vignettes/datatable-keys-fast-subset.Rmd @@ -1,26 +1,20 @@ --- title: "Keys and fast binary search based subset" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Keys and fast binary search based subset} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} -require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +library(data.table) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -32,7 +26,7 @@ This vignette is aimed at those who are already familiar with *data.table* synta We will use the same `flights` data as in the [`vignette("datatable-intro", package="data.table")`](datatable-intro.html) vignette. -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` @@ -446,7 +440,7 @@ dim(ans2) identical(ans1$val, ans2$val) ``` -* The speed-up is **~`r round(t1[3]/max(t2[3], .001))`x**! +* The speed-up is **~`{r} round(t1[3]/max(t2[3], .001))`x**! ### b) Why does keying a *data.table* result in blazing fast subsets? diff --git a/vignettes/datatable-programming.Rmd b/vignettes/datatable-programming.Rmd index 34c6d77fda..262439e5df 100644 --- a/vignettes/datatable-programming.Rmd +++ b/vignettes/datatable-programming.Rmd @@ -1,27 +1,20 @@ --- title: "Programming on data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Programming on data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r init, include = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE -) +litedown::reactor(comment = "# ") ``` ## Introduction diff --git a/vignettes/datatable-reference-semantics.Rmd b/vignettes/datatable-reference-semantics.Rmd index 1271196af8..44bfd5cf06 100644 --- a/vignettes/datatable-reference-semantics.Rmd +++ b/vignettes/datatable-reference-semantics.Rmd @@ -1,26 +1,20 @@ --- title: "Reference semantics" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Reference semantics} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} -require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +library(data.table) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -32,7 +26,7 @@ This vignette discusses *data.table*'s reference semantics which allows to *add/ We will use the same `flights` data as in the [`vignette("datatable-intro", package="data.table")`](datatable-intro.html) vignette. -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` diff --git a/vignettes/datatable-reshape.Rmd b/vignettes/datatable-reshape.Rmd index 4519295465..1df9ef8e53 100644 --- a/vignettes/datatable-reshape.Rmd +++ b/vignettes/datatable-reshape.Rmd @@ -1,26 +1,20 @@ --- title: "Efficient reshaping using data.tables" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Efficient reshaping using data.tables} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} -require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +library(data.table) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -28,7 +22,7 @@ This vignette discusses the default usage of reshaping functions `melt` (wide to *** -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` diff --git a/vignettes/datatable-sd-usage.Rmd b/vignettes/datatable-sd-usage.Rmd index 426a5db61b..0b388f0e0f 100644 --- a/vignettes/datatable-sd-usage.Rmd +++ b/vignettes/datatable-sd-usage.Rmd @@ -1,14 +1,14 @@ --- title: "Using .SD for Data Analysis" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format: + litedown::html_format: options: toc: true number_sections: true vignette: > %\VignetteIndexEntry{Using .SD for Data Analysis} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- @@ -21,21 +21,12 @@ vignette: > } -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} -require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE, - out.width = '100%', - dpi = 144 -) +library(data.table) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -91,10 +82,10 @@ Pitching[ , .SD, .SDcols = c('W', 'L', 'G')] This is just for illustration and was pretty boring. In addition to accepting a character vector, `.SDcols` also accepts: 1. any function such as `is.character` to filter _columns_ -2. the function^{*} `patterns()` to filter _column names_ by regular expression +2. the function[^*] `patterns()` to filter _column names_ by regular expression 3. integer and logical vectors -*see `?patterns` for more details +[^*]: see `?patterns` for more details This simple usage lends itself to a wide variety of highly beneficial / ubiquitous data manipulation operations: @@ -240,9 +231,9 @@ Suppose we wanted to return the _best_ year for each team, as measured by their Teams[ , .SD[which.max(R)], by = teamID] ``` -Note that this approach can of course be combined with `.SDcols` to return only portions of the `data.table` for each `.SD` (with the caveat that `.SDcols` should be fixed across the various subsets) +Note that this approach can of course be combined with `.SDcols` to return only portions of the `data.table` for each `.SD` (with the caveat that `.SDcols` should be fixed across the various subsets). -_NB_: `.SD[1L]` is currently optimized by [_`GForce`_](https://Rdatatable.gitlab.io/data.table/library/data.table/html/datatable-optimize.html) ([see also](https://stackoverflow.com/questions/22137591/about-gforce-in-data-table-1-9-2)), `data.table` internals which massively speed up the most common grouped operations like `sum` or `mean` -- see `?GForce` for more details and keep an eye on/voice support for feature improvement requests for updates on this front: [1](https://github.com/Rdatatable/data.table/issues/735), [2](https://github.com/Rdatatable/data.table/issues/2778), [3](https://github.com/Rdatatable/data.table/issues/523), [4](https://github.com/Rdatatable/data.table/issues/971), [5](https://github.com/Rdatatable/data.table/issues/1197), [6](https://github.com/Rdatatable/data.table/issues/1414) +_NB_: `.SD[1L]` is currently optimized by [_`GForce`_](https://Rdatatable.gitlab.io/data.table/library/data.table/html/datatable-optimize.html) ([see also](https://stackoverflow.com/questions/22137591/about-gforce-in-data-table-1-9-2)), `data.table` internals which massively speed up the most common grouped operations like `sum` or `mean` -- see `?GForce` for more details and keep an eye on/voice support for feature improvement requests for updates on this front: [1](https://github.com/Rdatatable/data.table/issues/735), [2](https://github.com/Rdatatable/data.table/issues/2778), [3](https://github.com/Rdatatable/data.table/issues/523), [4](https://github.com/Rdatatable/data.table/issues/971), [5](https://github.com/Rdatatable/data.table/issues/1197), [6](https://github.com/Rdatatable/data.table/issues/1414). ## Grouped Regression diff --git a/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd b/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd index d0850f205c..4af8959199 100644 --- a/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd +++ b/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd @@ -1,26 +1,20 @@ --- title: "Secondary indices and auto indexing" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Secondary indices and auto indexing} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::vignette} \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} -require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +library(data.table) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -36,7 +30,7 @@ This vignette assumes that the reader is familiar with data.table's `[i, j, by]` We will use the same `flights` data as in the [`vignette("datatable-intro", package="data.table")`](datatable-intro.html) vignette. -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` diff --git a/vignettes/fr/datatable-benchmarking.Rmd b/vignettes/fr/datatable-benchmarking.Rmd index 275b9cce79..4a89473393 100644 --- a/vignettes/fr/datatable-benchmarking.Rmd +++ b/vignettes/fr/datatable-benchmarking.Rmd @@ -1,6 +1,6 @@ --- title: "Analyse comparative (benchmark) de data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format: options: @@ -18,9 +18,8 @@ h2 { } -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` Ce document a pour but de guider la mesure de la performance de `data.table`. Il centralise la documentation des meilleures pratiques et des pièges à éviter. diff --git a/vignettes/fr/datatable-faq.Rmd b/vignettes/fr/datatable-faq.Rmd index 87117f2130..2dc5364228 100644 --- a/vignettes/fr/datatable-faq.Rmd +++ b/vignettes/fr/datatable-faq.Rmd @@ -1,6 +1,6 @@ --- title: "Foire aux questions de data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format: options: @@ -26,18 +26,12 @@ h2 { } -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` diff --git a/vignettes/fr/datatable-fread-and-fwrite.Rmd b/vignettes/fr/datatable-fread-and-fwrite.Rmd index e8f86c40ea..110e488337 100644 --- a/vignettes/fr/datatable-fread-and-fwrite.Rmd +++ b/vignettes/fr/datatable-fread-and-fwrite.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-importing.Rmd b/vignettes/fr/datatable-importing.Rmd index b3474a28d2..863a7f5984 100644 --- a/vignettes/fr/datatable-importing.Rmd +++ b/vignettes/fr/datatable-importing.Rmd @@ -1,23 +1,27 @@ --- title: "Importation dans data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Importation dans data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::litedown} \usepackage[utf8]{inputenc} --- +```{r, echo = FALSE, message = FALSE} +litedown::reactor(comment = "# ") +.old.th = data.table::setDTthreads(1) +``` + -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` Ce document se concentre sur l'utilisation de `data.table` comme dépendance dans d'autres packages R. Si vous souhaitez utiliser le code C de `data.table` à partir d'une application non-R, ou appeler directement ses fonctions C, passez à la [dernière section](#non-r-API) de cette vignette. @@ -285,3 +289,7 @@ result <- merge(dt, other_dt, by = "x") - **Gestion de l'espace de noms** : Seules les fonctions que votre package importe explicitement sont disponibles, ce qui réduit le risque de conflit de noms de fonctions. - **Chargement de package plus propre** : Les dépendances de votre package ne sont pas attachées au chemin de recherche, ce qui rend le processus de chargement plus propre et potentiellement plus rapide. - **Maintenance plus facile** : Cela simplifie les tâches de maintenance au fur et à mesure que les API des dépendances en amont évoluent. Trop dépendre de `Depends` peut conduire à des conflits et des problèmes de compatibilité au fil du temps. + +```{r, echo = FALSE, message = FALSE} +data.table::setDTthreads(.old.th) +``` diff --git a/vignettes/fr/datatable-intro.Rmd b/vignettes/fr/datatable-intro.Rmd index 60ce3e7dc8..ebebfb4efd 100644 --- a/vignettes/fr/datatable-intro.Rmd +++ b/vignettes/fr/datatable-intro.Rmd @@ -1,6 +1,6 @@ --- title: "Introduction à data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,19 +9,12 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE -) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -47,7 +40,7 @@ Dans cette vignette, nous utiliseront les données [NYC-flights14](https://raw.g Vous pouvez utiliser le lecteur de fichiers rapide et convivial 'fread' de 'data.table' pour charger 'flights' ditectement ainsi : -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` diff --git a/vignettes/fr/datatable-joins.Rmd b/vignettes/fr/datatable-joins.Rmd index adedb20b0e..8d9acb95bb 100644 --- a/vignettes/fr/datatable-joins.Rmd +++ b/vignettes/fr/datatable-joins.Rmd @@ -1,11 +1,11 @@ --- title: "Jointures avec data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: - markdown::html_format + litedown::html_format vignette: > %\VignetteIndexEntry{Jointures avec data.table} - %\VignetteEngine{knitr::knitr} + %\VignetteEngine{litedown::litedown} \usepackage[utf8]{inputenc} editor_options: chunk_output_type: console @@ -13,18 +13,11 @@ editor_options: ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE -) +litedown::reactor(comment = "# ") ``` -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` Dans cette vignette nous apprendrons à réaliser les opérations de jointure en utilisant les ressources de la syntaxe `data.table`. diff --git a/vignettes/fr/datatable-keys-fast-subset.Rmd b/vignettes/fr/datatable-keys-fast-subset.Rmd index 48165c2c9c..5a5b61e120 100644 --- a/vignettes/fr/datatable-keys-fast-subset.Rmd +++ b/vignettes/fr/datatable-keys-fast-subset.Rmd @@ -1,6 +1,6 @@ --- title: "Extraire des sous-ensemble avec les clés et la recherche binaire rapide" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,18 +9,12 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -35,7 +29,7 @@ Cette vignette s'adresse à ceux qui sont déjà familiers avec la syntaxe de *d Nous utiliserons les mêmes données `flights` que dans la [`vignette("datatable-intro", package="data.table")`](datatable-intro.html). -```{r echo = FALSE} +```{r, echo = FALSE} options(with = 100L) ``` diff --git a/vignettes/fr/datatable-programming.Rmd b/vignettes/fr/datatable-programming.Rmd index a8752cca80..99259b3d20 100644 --- a/vignettes/fr/datatable-programming.Rmd +++ b/vignettes/fr/datatable-programming.Rmd @@ -1,6 +1,6 @@ --- title: "Programmation avec data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,19 +9,12 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r init, include = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE -) +litedown::reactor(comment = "# ") ``` ## Introduction diff --git a/vignettes/fr/datatable-reference-semantics.Rmd b/vignettes/fr/datatable-reference-semantics.Rmd index 5756f92e08..142079617a 100644 --- a/vignettes/fr/datatable-reference-semantics.Rmd +++ b/vignettes/fr/datatable-reference-semantics.Rmd @@ -1,6 +1,6 @@ --- title: "Sémantique de référence" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,18 +9,12 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -32,7 +26,7 @@ Cette vignette traite de la sémantique de référence de *data.table* qui perme Nous utiliserons les mêmes données `flights` que dans la [`vignette("datatable-intro", package="data.table")`](datatable-intro.html). -```{r echo = FALSE} +```{r, echo = FALSE} options(with = 100L) ``` diff --git a/vignettes/fr/datatable-reshape.Rmd b/vignettes/fr/datatable-reshape.Rmd index 6c48ef65e9..58c3024068 100644 --- a/vignettes/fr/datatable-reshape.Rmd +++ b/vignettes/fr/datatable-reshape.Rmd @@ -1,6 +1,6 @@ --- title: "Restructurer efficacement avec les data.tables" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,18 +9,12 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -28,7 +22,7 @@ Cette vignette traite de l'utilisation par défaut des fonctions de transformati *** -```{r echo = FALSE} +```{r, echo = FALSE} options(with = 100L) ``` diff --git a/vignettes/fr/datatable-sd-usage.Rmd b/vignettes/fr/datatable-sd-usage.Rmd index 4031cf6345..26d458a999 100644 --- a/vignettes/fr/datatable-sd-usage.Rmd +++ b/vignettes/fr/datatable-sd-usage.Rmd @@ -1,6 +1,6 @@ --- title: "Utiliser .SD pour l’analyse de données" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format: options: @@ -21,21 +21,12 @@ vignette: > } -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE, - out.width = '100%', - dpi = 144 -) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` diff --git a/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd b/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd index 302879fa8f..3875df5820 100644 --- a/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd +++ b/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd @@ -1,6 +1,6 @@ --- title: "Indices secondaires et auto-indexation" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,18 +9,12 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -36,7 +30,7 @@ Cette vignette suppose que le lecteur est familier avec la syntaxe `[i, j, by]` Nous utiliserons les mêmes données `flights` que dans la [`vignette("datatable-intro", package="data.table")`](datatable-intro.html). -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` diff --git a/vignettes/ru/datatable-importing.Rmd b/vignettes/ru/datatable-importing.Rmd index 328e8f210d..4c26c7bf70 100644 --- a/vignettes/ru/datatable-importing.Rmd +++ b/vignettes/ru/datatable-importing.Rmd @@ -1,6 +1,6 @@ --- title: "Использование data.table в других пакетах" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,15 +9,19 @@ vignette: > \usepackage[utf8]{inputenc} --- +```{r, echo = FALSE, message = FALSE} +litedown::reactor(comment = "# ") +.old.th = data.table::setDTthreads(1) +``` + -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Данное руководство также доступно на следующих языках: %s'} ``` -`r .write.translation.links("Данное руководство также доступно на следующих языках: %s")` Этот документ рассказывает об использовании `data.table` в качестве зависимости в других R-пакетах. Если вас интересует использование C-кода @@ -472,3 +476,7 @@ result <- merge(dt, other_dt, by = "x") - **Упрощение обслуживания**: Это упрощает задачи обслуживания по мере развития API Ваших зависимостей. Слишком сильная зависимость от `Depends` может со временем привести к конфликтам и проблемам совместимости. + +```{r, echo = FALSE, message = FALSE} +data.table::setDTthreads(.old.th) +``` diff --git a/vignettes/ru/datatable-intro.Rmd b/vignettes/ru/datatable-intro.Rmd index 4fe1427f70..0c53382965 100644 --- a/vignettes/ru/datatable-intro.Rmd +++ b/vignettes/ru/datatable-intro.Rmd @@ -1,6 +1,6 @@ --- title: "Введение в data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -9,19 +9,12 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Данное руководство также доступно на следующих языках: %s'} ``` -`r .write.translation.links("Данное руководство также доступно на следующих языках: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE -) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` @@ -68,7 +61,7 @@ knitr::opts_chunk$set( Мы можем использовать функцию чтения файлов `fread` из `data.table`, чтобы загрузить рейсы (`flights`) следующим образом: -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ``` diff --git a/vignettes/ru/datatable-reshape.Rmd b/vignettes/ru/datatable-reshape.Rmd index fa58d65dc6..4a16c550c1 100644 --- a/vignettes/ru/datatable-reshape.Rmd +++ b/vignettes/ru/datatable-reshape.Rmd @@ -1,6 +1,6 @@ --- title: "Быстрое изменение формы данных с помощью data.table" -date: "`r Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > @@ -11,18 +11,12 @@ vignette: > ```{r, echo = FALSE, message = FALSE} require(data.table) -knitr::opts_chunk$set( - comment = "#", - error = FALSE, - tidy = FALSE, - cache = FALSE, - collapse = TRUE) +litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Данное руководство также доступно на следующих языках: %s'} ``` -`r .write.translation.links("Данное руководство также доступно на следующих языках: %s")` В этом руководстве рассматривается стандартное использование функций изменения формы данных `melt` (из широкой в длинную) и `dcast` (из длинной в @@ -31,7 +25,7 @@ knitr::opts_chunk$set( *** -```{r echo = FALSE} +```{r, echo = FALSE} options(width = 100L) ```