From 6e7999394f588851a452cdb37f94379cdac2e99d Mon Sep 17 00:00:00 2001 From: Jan Gorecki Date: Mon, 28 Oct 2019 23:48:36 +0530 Subject: [PATCH 01/17] readme link examples, rm old link to a talk (#4001) --- README.md | 19 +++++-------------- man/data.table.Rd | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index ab4cf7f569..d4510ac6c2 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,9 @@ --- -**Tuesday 22nd October 2019
+**26 December 2019
+Efficiency in data processing: data.table basics - Jan Gorecki, [Mumbai R@IISA 2019](https://r-iisa2019.rbind.io/)**
-Matt Dowle will be in New York for [H2O World](https://www.h2o.ai/h2oworldnewyork/).
-Please Ask-Me-Anything starting now: click http://sli.do and enter event code "askmattdowle".
-I'll answer the most voted questions during my session: https://h2o.ai/h2oworldny-livestream-reg** --- @@ -50,18 +48,10 @@ I'll answer the most voted questions during my session: https://h2o.ai/h2oworldn ## Installation -``` r -install.packages("data.table") -``` - -### Development version - ```r -install.packages("data.table", repos="https://Rdatatable.gitlab.io/data.table") -``` +install.packages("data.table") -or update only if newer revision is available -```r +# latest development version: data.table::update.dev.pkg() ``` @@ -92,6 +82,7 @@ DT[Petal.Width > 1.0, mean(Petal.Length), by = Species] * [Introduction to data.table](https://cloud.r-project.org/web/packages/data.table/vignettes/datatable-intro.html) vignette * [Getting started](https://github.com/Rdatatable/data.table/wiki/Getting-started) wiki page +* [Examples](https://rdatatable.gitlab.io/data.table/reference/data.table.html#examples) produced by `example(data.table)` ### Cheatsheets diff --git a/man/data.table.Rd b/man/data.table.Rd index 1170813b6f..b0a4037d3d 100644 --- a/man/data.table.Rd +++ b/man/data.table.Rd @@ -231,7 +231,7 @@ column called \code{"keep"} containing \code{TRUE} and this is correct behaviour \seealso{ \code{\link{special-symbols}}, \code{\link{data.frame}}, \code{\link{[.data.frame}}, \code{\link{as.data.table}}, \code{\link{setkey}}, \code{\link{setorder}}, \code{\link{setDT}}, \code{\link{setDF}}, \code{\link{J}}, \code{\link{SJ}}, \code{\link{CJ}}, \code{\link{merge.data.table}}, \code{\link{tables}}, \code{\link{test.data.table}}, \code{\link{IDateTime}}, \code{\link{unique.data.table}}, \code{\link{copy}}, \code{\link{:=}}, \code{\link{setalloccol}}, \code{\link{truelength}}, \code{\link{rbindlist}}, \code{\link{setNumericRounding}}, \code{\link{datatable-optimize}}, \code{\link{fsetdiff}}, \code{\link{funion}}, \code{\link{fintersect}}, \code{\link{fsetequal}}, \code{\link{anyDuplicated}}, \code{\link{uniqueN}}, \code{\link{rowid}}, \code{\link{rleid}}, \code{\link{na.omit}}, \code{\link{frank}} } \examples{ \dontrun{ -example(data.table) # to run these examples at the prompt +example(data.table) # to run these examples yourself } DF = data.frame(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9) DT = data.table(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9) From f9defd7e2fd6ca773b897abe1891f079e33a6399 Mon Sep 17 00:00:00 2001 From: Matt Dowle Date: Mon, 28 Oct 2019 16:03:44 -0700 Subject: [PATCH 02/17] Homepage additions (#4006) --- _pkgdown.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/_pkgdown.yml b/_pkgdown.yml index 150d94a77d..09a21c6e83 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -9,7 +9,7 @@ development: navbar: structure: - left: [home, introduction, reference, articles, news, benchmarks] + left: [home, introduction, vignettes, news, benchmarks, presentations, articles] right: [github] components: home: @@ -18,10 +18,7 @@ navbar: introduction: text: Introduction href: articles/datatable-intro.html - reference: - text: Manual - href: reference/index.html - articles: + vignettes: text: Vignettes menu: - text: "Introduction to data.table" @@ -42,12 +39,20 @@ navbar: href: articles/datatable-importing.html - text: "Benchmarking data.table" href: articles/datatable-benchmarking.html + - text: Reference manual + href: reference/index.html news: text: Changelog href: news/index.html benchmarks: text: Benchmarks href: https://h2oai.github.io/db-benchmark + presentations: + text: Presentations + href: https://github.com/Rdatatable/data.table/wiki/Presentations + articles: + text: Articles + href: https://github.com/Rdatatable/data.table/wiki/Articles github: icon: fab fa-github fa-lg href: https://github.com/Rdatatable/data.table From 4f17b17998acae8af4d0ec096c199fda05b9958f Mon Sep 17 00:00:00 2001 From: Jan Gorecki Date: Tue, 29 Oct 2019 22:14:41 +0530 Subject: [PATCH 03/17] pkgdown, keep manual tab, link cranlike page, minor rename (#4008) --- .gitlab-ci.yml | 2 +- _pkgdown.yml | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c7698a51a3..43ddf537a0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -309,7 +309,7 @@ integration: # merging all artifacts to produce single R repository and summarie # web/checks/check_results_$pkg.html - Rscript -e 'check.index("data.table", names(test.jobs))' # pkgdown merge - - Rscript -e 'common_files<-function(path1, path2) intersect(list.files(path1, all.files=TRUE, no..=TRUE), list.files(path2, all.files=TRUE, no..=TRUE)); if (length(f<-common_files("pkgdown","bus/integration/cran"))) message(paste(c("Following artifacts will be overwritten by pkgdown artifacts:", paste0(" ", f)), collapse="\n")); q("no")' + - Rscript -e 'common_files<-function(path1, path2) intersect(list.files(path1, all.files=TRUE, no..=TRUE), list.files(path2, all.files=TRUE, no..=TRUE)); msg = if (length(f<-common_files("pkgdown","bus/integration/cran"))) paste(c("Following artifacts will be overwritten by pkgdown artifacts:", paste0(" ", f)), collapse="\n") else "No overlapping files from pkgdown artifacts"; message(msg); q("no")' - mv pkgdown/* bus/integration/cran/ # cleanup artifacts from other jobs - mkdir tmpbus diff --git a/_pkgdown.yml b/_pkgdown.yml index 09a21c6e83..6d2ef397d3 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -7,9 +7,14 @@ template: development: version_tooltip: "Development version" +home: + links: + - text: CRAN-like website + href: web/packages/data.table/index.html + navbar: structure: - left: [home, introduction, vignettes, news, benchmarks, presentations, articles] + left: [home, introduction, articles, news, benchmarks, presentations, communityarticles, reference] right: [github] components: home: @@ -18,7 +23,7 @@ navbar: introduction: text: Introduction href: articles/datatable-intro.html - vignettes: + articles: text: Vignettes menu: - text: "Introduction to data.table" @@ -39,10 +44,8 @@ navbar: href: articles/datatable-importing.html - text: "Benchmarking data.table" href: articles/datatable-benchmarking.html - - text: Reference manual - href: reference/index.html news: - text: Changelog + text: News href: news/index.html benchmarks: text: Benchmarks @@ -50,9 +53,12 @@ navbar: presentations: text: Presentations href: https://github.com/Rdatatable/data.table/wiki/Presentations - articles: + communityarticles: text: Articles href: https://github.com/Rdatatable/data.table/wiki/Articles + reference: + text: Manual + href: reference/index.html github: icon: fab fa-github fa-lg href: https://github.com/Rdatatable/data.table From 66df41c235d65794fd9a0c8ac7dac9e470372d87 Mon Sep 17 00:00:00 2001 From: 2005m Date: Fri, 1 Nov 2019 21:59:26 +0000 Subject: [PATCH 04/17] fix Rd warnings (#4011) --- .dev/CRAN_Release.cmd | 2 +- NEWS.md | 2 ++ man/fread.Rd | 8 ++++---- man/like.Rd | 4 ++-- man/openmp-utils.Rd | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.dev/CRAN_Release.cmd b/.dev/CRAN_Release.cmd index 9e40ec223c..8239c02952 100644 --- a/.dev/CRAN_Release.cmd +++ b/.dev/CRAN_Release.cmd @@ -127,7 +127,7 @@ install.packages("xml2") # to check the 150 URLs in NEWS.md under --as-cran be q("no") R CMD build . R CMD check data.table_1.12.7.tar.gz --as-cran -R CMD INSTALL data.table_1.12.7.tar.gz +R CMD INSTALL data.table_1.12.7.tar.gz --html # Test C locale doesn't break test suite (#2771) echo LC_ALL=C > ~/.Renviron diff --git a/NEWS.md b/NEWS.md index f53b8fa6e7..adc1c48362 100644 --- a/NEWS.md +++ b/NEWS.md @@ -10,6 +10,8 @@ ## NOTES +1. Links in the manual were creating warnings when installing HTML, [#4000](https://github.com/Rdatatable/data.table/issues/4000). Thanks to Morgan Jacob. + # data.table [v1.12.6](https://github.com/Rdatatable/data.table/milestone/18?closed=1) (18 Oct 2019) diff --git a/man/fread.Rd b/man/fread.Rd index fc147fa0e8..03b288ebc9 100644 --- a/man/fread.Rd +++ b/man/fread.Rd @@ -42,11 +42,11 @@ yaml=FALSE, autostart=NA, tmpdir=tempdir() \item{skip}{ If 0 (default) start on the first line and from there finds the first row with a consistent number of columns. This automatically avoids irregular header information before the column names row. \code{skip>0} means ignore the first \code{skip} rows manually. \code{skip="string"} searches for \code{"string"} in the file (e.g. a substring of the column names row) and starts on that line (inspired by read.xls in package gdata). } \item{select}{ A vector of column names or numbers to keep, drop the rest. \code{select} may specify types too in the same way as \code{colClasses}; i.e., a vector of \code{colname=type} pairs, or a \code{list} of \code{type=col(s)} pairs. In all forms of \code{select}, the order that the columns are specified determines the order of the columns in the result. } \item{drop}{ Vector of column names or numbers to drop, keep the rest. } - \item{colClasses}{ As in \code{\link[utils]{read.csv}}; i.e., an unnamed vector of types corresponding to the columns in the file, or a named vector specifying types for a subset of the columns by name. The default, \code{NULL} means types are inferred from the data in the file. Further, \code{data.table} supports a named \code{list} of vectors of column names \emph{or numbers} where the \code{list} names are the class names; see examples. The \code{list} form makes it easier to set a batch of columns to be a particular class. When column numbers are used in the \code{list} form, they refer to the column number in the file not the column number after \code{select} or \code{drop} has been applied. + \item{colClasses}{ As in \code{\link[utils:read.table]{utils::read.csv}}; i.e., an unnamed vector of types corresponding to the columns in the file, or a named vector specifying types for a subset of the columns by name. The default, \code{NULL} means types are inferred from the data in the file. Further, \code{data.table} supports a named \code{list} of vectors of column names \emph{or numbers} where the \code{list} names are the class names; see examples. The \code{list} form makes it easier to set a batch of columns to be a particular class. When column numbers are used in the \code{list} form, they refer to the column number in the file not the column number after \code{select} or \code{drop} has been applied. If type coercion results in an error, introduces \code{NA}s, or would result in loss of accuracy, the coercion attempt is aborted for that column with warning and the column's type is left unchanged. If you really desire data loss (e.g. reading \code{3.14} as \code{integer}) you have to truncate such columns afterwards yourself explicitly so that this is clear to future readers of your code. } - \item{integer64}{ "integer64" (default) reads columns detected as containing integers larger than 2^31 as type \code{bit64::integer64}. Alternatively, \code{"double"|"numeric"} reads as \code{base::read.csv} does; i.e., possibly with loss of precision and if so silently. Or, "character". } - \item{dec}{ The decimal separator as in \code{base::read.csv}. If not "." (default) then usually ",". See details. } + \item{integer64}{ "integer64" (default) reads columns detected as containing integers larger than 2^31 as type \code{bit64::integer64}. Alternatively, \code{"double"|"numeric"} reads as \code{utils::read.csv} does; i.e., possibly with loss of precision and if so silently. Or, "character". } + \item{dec}{ The decimal separator as in \code{utils::read.csv}. If not "." (default) then usually ",". See details. } \item{col.names}{ A vector of optional names for the variables (columns). The default is to use the header column if present or detected, or if not "V" followed by the column number. This is applied after \code{check.names} and before \code{key} and \code{index}. } \item{check.names}{default is \code{FALSE}. If \code{TRUE} then the names of the variables in the \code{data.table} are checked to ensure that they are syntactically valid variable names. If necessary they are adjusted (by \code{\link{make.names}}) so that they are, and also to ensure that there are no duplicates.} \item{encoding}{ default is \code{"unknown"}. Other possible options are \code{"UTF-8"} and \code{"Latin-1"}. Note: it is not used to re-encode the input, rather enables handling of encoded strings in their native encoding. } @@ -63,7 +63,7 @@ yaml=FALSE, autostart=NA, tmpdir=tempdir() \item{keepLeadingZeros}{If TRUE a column containing numeric data with leading zeros will be read as character, otherwise leading zeros will be removed and converted to numeric.} \item{yaml}{ If \code{TRUE}, \code{fread} will attempt to parse (using \code{\link[yaml]{yaml.load}}) the top of the input as YAML, and further to glean parameters relevant to improving the performance of \code{fread} on the data itself. The entire YAML section is returned as parsed into a \code{list} in the \code{yaml_metadata} attribute. See \code{Details}. } \item{autostart}{ Deprecated and ignored with warning. Please use \code{skip} instead. } - \item{tmpdir}{ Directory to use as the \code{tmpdir} argument for any \code{tempfile} calls, e.g. when the input is a URL or a shell command. The default is \code{tempdir()} which can be controlled by setting \code{TMPDIR} before starting the R session; see \code{\link[base]{tempdir}}. } + \item{tmpdir}{ Directory to use as the \code{tmpdir} argument for any \code{tempfile} calls, e.g. when the input is a URL or a shell command. The default is \code{tempdir()} which can be controlled by setting \code{TMPDIR} before starting the R session; see \code{\link[base:tempfile]{base::tempdir}}. } } \details{ diff --git a/man/like.Rd b/man/like.Rd index de6edae0fd..4eadb98a81 100644 --- a/man/like.Rd +++ b/man/like.Rd @@ -22,13 +22,13 @@ vector \%flike\% pattern \item{fixed}{ \code{logical}; should \code{pattern} be interpreted as a literal string (i.e., ignoring regular expressions)? } } \details{ - Internally, \code{like} is essentially a wrapper around \code{\link[base]{grepl}}, except that it is smarter about handling \code{factor} input (\code{base::grep} uses slow \code{as.character} conversion). + Internally, \code{like} is essentially a wrapper around \code{\link[base:grep]{base::grepl}}, except that it is smarter about handling \code{factor} input (\code{base::grep} uses slow \code{as.character} conversion). } \value{ Logical vector, \code{TRUE} for items that match \code{pattern}. } \note{ Current implementation does not make use of sorted keys. } -\seealso{ \code{\link[base]{grepl}} } +\seealso{ \code{\link[base:grep]{base::grepl}} } \examples{ DT = data.table(Name=c("Mary","George","Martha"), Salary=c(2,3,4)) DT[Name \%like\% "^Mar"] diff --git a/man/openmp-utils.Rd b/man/openmp-utils.Rd index c057f0433f..14564fb54d 100644 --- a/man/openmp-utils.Rd +++ b/man/openmp-utils.Rd @@ -19,7 +19,7 @@ A length 1 \code{integer}. The old value is returned by \code{setDTthreads} so you can store that prior value and pass it to \code{setDTthreads()} again after the section of your code where you control the number of threads. } \details{ - \code{data.table} automatically switches to single threaded mode upon fork (the mechanism used by \code{\link[parallel]{mclapply}} and the foreach package). Otherwise, nested parallelism would very likely overload your CPUs and result in much slower execution. As \code{data.table} becomes more parallel internally, we expect explicit user parallelism to be needed less often. The \code{restore_after_fork} option controls what happens after the explicit fork parallelism completes. It needs to be at C level so it is not a regular R option using \code{options()}. By default \code{data.table} will be multi-threaded again; restoring the prior setting of \code{getDTthreads()}. But problems have been reported in the past on Mac with Intel OpenMP libraries whereas success has been reported on Linux. If you experience problems after fork, start a new R session and change the default behaviour by calling \code{setDTthreads(restore_after_fork=FALSE)} before retrying. Please raise issues on the data.table GitHub issues page. + \code{data.table} automatically switches to single threaded mode upon fork (the mechanism used by \code{parallel::mclapply} and the foreach package). Otherwise, nested parallelism would very likely overload your CPUs and result in much slower execution. As \code{data.table} becomes more parallel internally, we expect explicit user parallelism to be needed less often. The \code{restore_after_fork} option controls what happens after the explicit fork parallelism completes. It needs to be at C level so it is not a regular R option using \code{options()}. By default \code{data.table} will be multi-threaded again; restoring the prior setting of \code{getDTthreads()}. But problems have been reported in the past on Mac with Intel OpenMP libraries whereas success has been reported on Linux. If you experience problems after fork, start a new R session and change the default behaviour by calling \code{setDTthreads(restore_after_fork=FALSE)} before retrying. Please raise issues on the data.table GitHub issues page. The number of logical CPUs is determined by the OpenMP function \code{omp_get_num_procs()} whose meaning may vary across platforms and OpenMP implementations. \code{setDTthreads()} will not allow more than this limit. Neither will it allow more than \code{omp_get_thread_limit()} nor the current value of \code{Sys.getenv("OMP_THREAD_LIMIT")}. Note that CRAN's daily test system (results for data.table \href{https://cran.r-project.org/web/checks/check_results_data.table.html}{here}) sets \code{OMP_THREAD_LIMIT} to 2 and should always be respected; e.g., if you have written a package that uses data.table and your package is to be released on CRAN, you should not change \code{OMP_THREAD_LIMIT} in your package to a value greater than 2. From d8ed3a552eaece43d8dd848c6aa79ac1b8464b31 Mon Sep 17 00:00:00 2001 From: mattdowle Date: Fri, 1 Nov 2019 18:05:45 -0700 Subject: [PATCH 05/17] use Rdevel for revdeps due to bioc-devel (3.11) now needing R 4+ --- .dev/revdep.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.dev/revdep.R b/.dev/revdep.R index e7eb821a9b..dd1546a1ed 100644 --- a/.dev/revdep.R +++ b/.dev/revdep.R @@ -1,6 +1,6 @@ # Run by package maintainer via these entries in ~/.bash_aliases : -# alias revdepr='cd ~/build/revdeplib/ && R_LIBS_SITE=none R_LIBS=~/build/revdeplib/ _R_CHECK_FORCE_SUGGESTS_=false R_PROFILE_USER=~/GitHub/data.table/.dev/revdep.R R' # alias revdepsh='cd ~/build/revdeplib/ && export TZ=UTC && export R_LIBS_SITE=none && export R_LIBS=~/build/revdeplib/ && export _R_CHECK_FORCE_SUGGESTS_=false' +# alias revdepr='revdepsh; R_PROFILE_USER=~/GitHub/data.table/.dev/revdep.R ~/build/R-devel/bin/R' # revdep = reverse first-order dependency; i.e. the CRAN and Bioconductor packages which directly use data.table (765 at the time of writing) # Check that env variables have been set correctly: @@ -8,7 +8,7 @@ # export R_LIBS=~/build/revdeplib/ # export _R_CHECK_FORCE_SUGGESTS_=false stopifnot(identical(length(.libPaths()), 2L)) # revdeplib (writeable by me) and the pre-installed recommended R library (sudo writeable) -stopifnot(identical(file.info(.libPaths())[,"uname"], c(as.vector(Sys.info()["user"]), "root"))) +stopifnot(identical(file.info(.libPaths())[,"uname"], rep(as.vector(Sys.info()["user"]), 2))) # 2nd one is root when using default R rather than Rdevel stopifnot(identical(.libPaths()[1], getwd())) stopifnot(identical(Sys.getenv("_R_CHECK_FORCE_SUGGESTS_"),"false")) options(repos = c("CRAN"=c("http://cloud.r-project.org"))) @@ -18,10 +18,10 @@ options(repos = c("CRAN"=c("http://cloud.r-project.org"))) # and BiocManager::install()) will call this script again recursively. Sys.unsetenv("R_PROFILE_USER") -system("sudo R -e \"utils::update.packages('/usr/lib/R/library', ask=FALSE, checkBuilt=TRUE)\"") +system(paste0("~/build/R-devel/bin/R -e \"utils::update.packages('",.libPaths()[2],"', ask=FALSE, checkBuilt=TRUE)\"")) require(utils) # only base is loaded when R_PROFILE_USER runs -update.packages(ask=FALSE, checkBuilt=TRUE) +update.packages(ask=FALSE, checkBuilt=FALSE) # if package not found on mirror, try manually a different one: # install.packages("", repos="http://cran.stat.ucla.edu/") # update.packages(ask=FALSE) # a repeat sometimes does more, keep repeating until none From 9b181a654eb2b5f2335feb2e16950b367ccc7eb7 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sun, 27 Oct 2019 09:53:43 +0800 Subject: [PATCH 06/17] (hopefully) apply encoding fix & check compilation --- inst/po/zh_CN/LC_MESSAGES/R-data.table.mo | Bin 504 -> 5025 bytes inst/po/zh_CN/LC_MESSAGES/data.table.mo | Bin 351 -> 6084 bytes po/zh_CN.po | 88 +++++++++++----------- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/inst/po/zh_CN/LC_MESSAGES/R-data.table.mo b/inst/po/zh_CN/LC_MESSAGES/R-data.table.mo index 7ef24e1c57f4705e201a8e93b6bb1134d4fd6ffc..84285c5e5871d48b1084d0f8736e119e81b49670 100644 GIT binary patch literal 5025 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 B9zy^C delta 186 zcmZ3e{)4&xo)F7a1|VPoVi_Q|0b*7ljsap2C;(zLAT9)AHXxn>#DYLPABg!F85lMK zX$>Gg0A#ZR>6btnr0ye-1|kM#AO-;@AO_jNpstWvtdOXXl3A3RT#`Te9FwGkTV_tG xf;vM;kfUF)k7J0Zzn_A$hpV&q<||x+jFZ1`Yw$mt*8XJoHg$$4JJtf33;^FFBZmM0 diff --git a/inst/po/zh_CN/LC_MESSAGES/data.table.mo b/inst/po/zh_CN/LC_MESSAGES/data.table.mo index 494e694301b11f2fc6059ae7cb016f6ea0d15ac6..e80554f0ac64221a831f57e0fcc6bae19b2a025a 100644 GIT binary patch literal 6084 zcmc&&TXPi074F#1O}RS>aT1a=j+K>c?OGzl!Lk(_gK#JiQGrOg%Au0cZtw2cvoo8S zSwK83=nfJBTS8!Ng5si(APIv(=z@MgUi{*hJftel_U!73rzDk^RKC+QS}l@F!q{=9 zYWZe*y3d^R^*LW3^w-B98(_HB;I|sTr#{2jv%soH@DHv6@F;K=$nkFfql|6E^Qp%e zs|DtP2Jp$xGFA`l1Fi#p06YXN`y68_-~f>3J^FdZP6E@wAJF?RFm?f00qh6L@uLqJ}I*{IX0?QHiRUi@d{#W1&p5tF-Y&V`;zs6W2@Nd93fNSB* ztH3kB=YSG;7`XZyJ`ck{1JA1-XY3NN6-c~Sev`3o;AY?u@O@w#@b}+hEDZc7a4Ybs zZ!=a0Oap%j906_s{tF1x?0Ezq0&WF90d#;*1ABl~z}rBWVmaUsf&T`s0Y32^*ap@H z_*)?H)CT-Ma2SZNix;*rLHE z@HnP~HZ{FoWsseg3aqN4PgGVlx71bP2{xU&-JuBIDFlBhrny?g)tU_vDLSM-oIgz# zkLzZPr?B3NbImZg?uwMd@vLz}cU*J21YDR|lzaeW_e)*Mk= z3mfElB?ateY%&<<0by3!1qJ&xSGP=_aVTgSvP`FfqVa6t@KhOD0>=f``f-Y!lsD@rr$wTzAyaqNS#7?X4@1ac(B;w13mA zyXwYC>T&-rsV9;<_5H$s|BB{Dlj^pa?usuA&2iPcV5Dr($E=V8`u5>Vh|G0uy*Y!h zQ@WEPL&8A}QO$^E46uP*@MkWvk};i3I&IlBN5!hSDhUMg2f34=jAh#`b&ZMDgJ zG$RB1aWEWHIpuOgz+V)O;0fExq$7NzCG03sjp8vgDPil;z&_Ua?9$uN7Be1FrJ^!Y zEp})P$}fsULaqwa<$IB#Dj^@nl^tp?{|{f=zTqQ<)`Z%l+@q2;!K*70s7haX6h)d( zF5ip7O;IJeNlf%JG?*Sz0+zIl7VY>S72jR|or<61}? z9SH*=Bjp15dxWVAGYUOwN+RP`UAPc8USVo>s;=CrH|^L}AK~@ODGxHQBJzm{&x5!KL4b$QniaevJ^ZwsqHL%j-dAu6Gd@|T zqE;$xhJD{(Y&-YWjCQ`FD^0TrXg3h^cgOku>;a4&VC){M! z^0LNXg?ETOI;{$C!dY3%*H+g&AFinmSFhtWKd-HR?wRWKW!rGRg_~^6bg)0vay01C zq$Ui$F{$Hhv-pd_K=8co$oG(8w0vI}FOa!CTlo@AOsdoY!?!9y&*F0|E9UP<^oM z>X>cs&HrIycJL-!U|k*Xg_(YN>MXd)U!Rm`55r^C>iU^c(gM?r$+x|;r)Ag4xk(ER z&b7n;i*9&(*>?70Ib7P{;oRESKD z-IW*H57qw4)v5h{OieFI)36SjvpkY+}7q1Yx5Q5fr+3_A# z&_KJN)`bgyEOcI#hlZEj2^bD~XV_(`aAfb0lFW|#+v5^_^CcHcRg#gs74u5fnkqDG zXkqmB{Yn%x!XHzJn4d({#1ua)C;Cb8g8$E#$RT`G3d~DIO!kfDCNFunC*`3b+1;C; z%9d(nCHEZ+d|&o20ZS@nDOGRv5KlPzADkxY7|@x2T$bd;UL*<_A|)N|FWhaVEE((b zlf$p?B2mm69P(}qC?#Idrjj5*cwh^W_(F_WeEp>+NA=3`+F;?(!9b3ew}n49@rPgS zWhYTK@WiKdIYU8%D{sH+i(b$hBmST{=CCx^8)Gy#4P6Ta(*LtaU?C_6G|6+_Z}3^w zBa;#8k%L)_yX5;{pcMw8bElu|IwP+f&fmS5n|_Rg*0n2{5gDap!XKH))o%`2C0F8%`17-8371?1}*>q diff --git a/po/zh_CN.po b/po/zh_CN.po index 710b460ec5..2d6cb1cdda 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -3056,11 +3056,11 @@ msgstr "" #: gsumm.c:47 msgid "l is not an integer vector" -msgstr "l 不是整数向量" +msgstr "l 涓嶆槸鏁存暟鍚戦噺" #: gsumm.c:56 msgid "irowsArg is neither an integer vector nor NULL" -msgstr "irowsArg 既不是整数向量也不是 NULL" +msgstr "irowsArg 鏃笉鏄暣鏁板悜閲忎篃涓嶆槸 NULL" #: gsumm.c:58 #, c-format @@ -3070,48 +3070,48 @@ msgstr "" #: gsumm.c:66 #, c-format msgid "o has length %d but sum(l)=%d" -msgstr "o 的长度为 %d,但 sum(l) = %d" +msgstr "o 鐨勯暱搴︿负 %d锛屼絾 sum(l) = %d" #: gsumm.c:69 msgid "Internal error: o's maxgrpn attribute mismatches recalculated maxgrpn" -msgstr "内部错误:o 的 maxgrpn 属性与重新计算的 maxgrpn 不匹配" +msgstr "鍐呴儴閿欒锛歰 鐨 maxgrpn 灞炴т笌閲嶆柊璁$畻鐨 maxgrpn 涓嶅尮閰" #: gsumm.c:89 #, c-format msgid "" "Internal error: nrow=%d ngrp=%d nbit=%d shift=%d highSize=%d nBatch=%d " "batchSize=%d lastBatchSize=%d\n" -msgstr "内部错误:nrow=%d ngrp=%d nbit=%d shift=%d highSize=%d nBatch=%d " +msgstr "鍐呴儴閿欒锛歯row=%d ngrp=%d nbit=%d shift=%d highSize=%d nBatch=%d " "batchSize=%d lastBatchSize=%d\n" #: gsumm.c:98 #, c-format msgid "gforce initial population of grp took %.3f\n" -msgstr "grp 的 gforce 初始群体数占了 %.3f\n " +msgstr "grp 鐨 gforce 鍒濆缇や綋鏁板崰浜 %.3f\n" #: gsumm.c:116 msgid "" "Internal error: Failed to allocate counts or TMP when assigning g in gforce" -msgstr "内部错误:在 gforce 中为 g 赋值时,未能成功为 counts 或者 TMP 分配空间" +msgstr "鍐呴儴閿欒锛氬湪 gforce 涓负 g 璧嬪兼椂锛屾湭鑳芥垚鍔熶负 counts 鎴栬 TMP 鍒嗛厤绌洪棿" #: gsumm.c:194 #, c-format msgid "gforce assign high and low took %.3f\n" -msgstr "gforce 分配 high 和 low 用了 %.3f\n" +msgstr "gforce 鍒嗛厤 high 鍜 low 鐢ㄤ簡 %.3f\n" #: gsumm.c:200 #, c-format msgid "gforce eval took %.3f\n" -msgstr "gforce eval 用了 %.3f\n" +msgstr "gforce eval 鐢ㄤ簡 %.3f\n" #: gsumm.c:216 msgid "gather took ... " -msgstr "gather 用了 ..." +msgstr "gather 鐢ㄤ簡 ..." #: gsumm.c:334 #, c-format msgid "gather implemented for INTSXP, REALSXP, and CPLXSXP but not '%s'" -msgstr "gather 已支持 INTSXP,REALSXP 和 CPLXSXP,但不支持 '%s'" +msgstr "gather 宸叉敮鎸 INTSXP锛孯EALSXP 鍜 CPLXSXP锛屼絾涓嶆敮鎸 '%s'" #: gsumm.c:336 gsumm.c:568 #, c-format @@ -3120,65 +3120,65 @@ msgstr "" #: gsumm.c:345 msgid "sum is not meaningful for factors." -msgstr "因子的和没有意义。" +msgstr "鍥犲瓙鐨勫拰娌℃湁鎰忎箟銆" #: gsumm.c:349 #, c-format msgid "This gsum took (narm=%s) ... " -msgstr "gsum 占用了 (narm=%s) ..." +msgstr "gsum 鍗犵敤浜 (narm=%s) ..." #: gsumm.c:350 gsumm.c:606 #, c-format msgid "nrow [%d] != length(x) [%d] in gsum" -msgstr "gsum 中 nrow [%d] != length(x) [%d]" +msgstr "gsum 涓 nrow [%d] != length(x) [%d]" #: gsumm.c:404 msgid "" "The sum of an integer column for a group was more than type 'integer' can " "hold so the result has been coerced to 'numeric' automatically for " "convenience." -msgstr "某整数列分组求和的结果中," -"出现了超过了整型(interger)数值所允许最大值的情况," -"故结果被自动转换为数值类型(numeric)" +msgstr "鏌愭暣鏁板垪鍒嗙粍姹傚拰鐨勭粨鏋滀腑锛" +"鍑虹幇浜嗚秴杩囦簡鏁村瀷锛坕nterger锛夋暟鍊兼墍鍏佽鏈澶у肩殑鎯呭喌锛" +"鏁呯粨鏋滆鑷姩杞崲涓烘暟鍊肩被鍨嬶紙numeric锛" #: gsumm.c:565 #, c-format msgid "" "Type '%s' not supported by GForce sum (gsum). Either add the prefix base::" "sum(.) or turn off GForce optimization using options(datatable.optimize=1)" -msgstr "GForce 求和(gsum)不支持类型 '%s'。请使用 base::sum(.) 或者" -"设置 options(datatable.optimize=1) 关闭 GForce 优化" +msgstr "GForce 姹傚拰锛坓sum锛変笉鏀寔绫诲瀷 '%s'銆傝浣跨敤 base::sum(.) 鎴栬" +"璁剧疆 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" #: gsumm.c:578 msgid "" "GForce mean can only be applied to columns, not .SD or similar. Likely " "you're looking for 'DT[,lapply(.SD,mean),by=,.SDcols=]'. See ?data.table." -msgstr "GForce 求平均值仅适用于列,而不能用于 .SD 或其它。" -"或许你在查找 'DT[,lapply(.SD,mean),by=,.SDcols=]'。参见 ?data.table 。" +msgstr "GForce 姹傚钩鍧囧间粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦" +"鎴栬浣犲湪鏌ユ壘 'DT[,lapply(.SD,mean),by=,.SDcols=]'銆傚弬瑙 ?data.table 銆" #: gsumm.c:579 msgid "mean is not meaningful for factors." -msgstr "因子的平均值没有意义" +msgstr "鍥犲瓙鐨勫钩鍧囧兼病鏈夋剰涔" #: gsumm.c:599 #, c-format msgid "Internal error: gsum returned type '%s'. typeof(x) is '%s'" -msgstr "内部错误:gsum 返回的类型是 '%s',而 typeof(x) 的结果则是 '%s'" +msgstr "鍐呴儴閿欒锛歡sum 杩斿洖鐨勭被鍨嬫槸 '%s'锛岃 typeof(x) 鐨勭粨鏋滃垯鏄 '%s'" #: gsumm.c:609 #, c-format msgid "Unable to allocate %d * %d bytes for sum in gmean na.rm=TRUE" -msgstr "无法为 gmean na.rm=TRUE 的总和(sum)分配 %d * %d 字节空间" +msgstr "鏃犳硶涓 gmean na.rm=TRUE 鐨勬诲拰锛坰um锛夊垎閰 %d * %d 瀛楄妭绌洪棿" #: gsumm.c:612 #, c-format msgid "Unable to allocate %d * %d bytes for counts in gmean na.rm=TRUE" -msgstr "无法为 gmean na.rm=TRUE 的计数(counts)分配 %d * %d 字节空间" +msgstr "鏃犳硶涓 gmean na.rm=TRUE 鐨勮鏁帮紙counts锛夊垎閰 %d * %d 瀛楄妭绌洪棿" #: gsumm.c:638 #, c-format msgid "Unable to allocate %d * %d bytes for si in gmean na.rm=TRUE" -msgstr "无法为 gmean na.rm=TRUE 的 si 分配 %d * %d 字节空间" +msgstr "鏃犳硶涓 gmean na.rm=TRUE 鐨 si 鍒嗛厤 %d * %d 瀛楄妭绌洪棿" #: gsumm.c:650 #, c-format @@ -3186,12 +3186,12 @@ msgid "" "Type '%s' not supported by GForce mean (gmean) na.rm=TRUE. Either add the " "prefix base::mean(.) or turn off GForce optimization using options(datatable." "optimize=1)" -msgstr "GForce 求均值(gmean)不支持类型 '%s'。请使用 base::mean(.) 或者" -"设置 options(datatable.optimize=1) 关闭 GForce 优化" +msgstr "GForce 姹傚潎鍊硷紙gmean锛変笉鏀寔绫诲瀷 '%s'銆傝浣跨敤 base::mean(.) 鎴栬" +"璁剧疆 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" #: gsumm.c:674 msgid "Internal error: unsupported type at the end of gmean" -msgstr "内部错误:gmean 结尾处存在不支持的类型" +msgstr "鍐呴儴閿欒锛歡mean 缁撳熬澶勫瓨鍦ㄤ笉鏀寔鐨勭被鍨" #: gsumm.c:687 msgid "" @@ -3199,45 +3199,45 @@ msgid "" "of all items in a list such as .SD, either add the prefix base::min(.SD) or " "turn off GForce optimization using options(datatable.optimize=1). More " "likely, you may be looking for 'DT[,lapply(.SD,min),by=,.SDcols=]'" -msgstr "GForce 求最小值(min)仅适用于列,而不能用于 .SD 或其它。" -"要找到列表中(如 .SD)所有元素的最小值,须使用 base::min(.SD) 或者" -"设置 options(datatable.optimize=1) 关闭 GForce 优化。" -"你更像是在查找 'DT[,lapply(.SD,min),by=,.SDcols=]'" +msgstr "GForce 姹傛渶灏忓硷紙min锛変粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦" +"瑕佹壘鍒板垪琛ㄤ腑锛堝 .SD锛夋墍鏈夊厓绱犵殑鏈灏忓硷紝椤讳娇鐢 base::min(.SD) 鎴栬" +"璁剧疆 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲銆" +"浣犳洿鍍忔槸鍦ㄦ煡鎵 'DT[,lapply(.SD,min),by=,.SDcols=]'" #: gsumm.c:688 msgid "min is not meaningful for factors." -msgstr "因子的最小值没有意义。" +msgstr "鍥犲瓙鐨勬渶灏忓兼病鏈夋剰涔夈" #: gsumm.c:693 #, c-format msgid "nrow [%d] != length(x) [%d] in gmin" -msgstr "gmin 中 nrow [%d] != length(x) [%d]" +msgstr "gmin 涓 nrow [%d] != length(x) [%d]" #: gsumm.c:717 gsumm.c:850 msgid "" "No non-missing values found in at least one group. Coercing to numeric type " "and returning 'Inf' for such groups to be consistent with base" -msgstr "在至少一个分组中没有发现缺失值。" -"为了与 base 保持一致,将这些组强制转换为数值类型并返回 ‘Inf’。" +msgstr "鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺" +"涓轰簡涓 base 淇濇寔涓鑷达紝灏嗚繖浜涚粍寮哄埗杞崲涓烘暟鍊肩被鍨嬪苟杩斿洖 鈥業nf鈥欍" #: gsumm.c:756 gsumm.c:891 msgid "" "No non-missing values found in at least one group. Returning 'NA' for such " "groups to be consistent with base" -msgstr "在至少一个分组中没有发现缺失值。" -"为了与 base 保持一致,这些组将返回 ‘NA’。" +msgstr "鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺" +"涓轰簡涓 base 淇濇寔涓鑷达紝杩欎簺缁勫皢杩斿洖 鈥楴A鈥欍" #: gsumm.c:783 msgid "" "No non-missing values found in at least one group. Returning 'Inf' for such " "groups to be consistent with base" -msgstr "在至少一个分组中没有发现缺失值。" -"为了与 base 保持一致,这些组将返回 ‘Inf’。" +msgstr "鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺" +"涓轰簡涓 base 淇濇寔涓鑷达紝杩欎簺缁勫皢杩斿洖 鈥業nf鈥欍" #: gsumm.c:791 msgid "Type 'complex' has no well-defined min" -msgstr "复数不能比较大小,故没有最小值" +msgstr "澶嶆暟涓嶈兘姣旇緝澶у皬锛屾晠娌℃湁鏈灏忓" #: gsumm.c:794 #, c-format @@ -3245,8 +3245,8 @@ msgid "" "Type '%s' not supported by GForce min (gmin). Either add the prefix base::" "min(.) or turn off GForce optimization using options(datatable.optimize=1)" msgstr "" -"类型'%s'不支持应用 GForce 最小值(gmin) 优化。你可以添加前缀 base::" -"min(.) 或者使用 options(datatable.optimize=1) 关闭 GForce 优化" +"绫诲瀷'%s'涓嶆敮鎸佸簲鐢 GForce 鏈灏忓硷紙gmin锛 浼樺寲銆備綘鍙互娣诲姞鍓嶇紑 base::" +"min(.) 鎴栬呬娇鐢 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" #: gsumm.c:806 msgid "" From dc4408341490dfc530b68f22c2fda5621a4cf146 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sun, 27 Oct 2019 10:04:38 +0800 Subject: [PATCH 07/17] improve internal error & regenerate messages --- inst/po/en@quot/LC_MESSAGES/data.table.mo | Bin 137030 -> 137032 bytes po/data.table.pot | 4 +- po/zh_CN.po | 55 ++++++++++++---------- src/forder.c | 2 +- 4 files changed, 33 insertions(+), 28 deletions(-) diff --git a/inst/po/en@quot/LC_MESSAGES/data.table.mo b/inst/po/en@quot/LC_MESSAGES/data.table.mo index de6c0b5a40ca089a7dcdb26396919e3b8270eb72..f1c68755f91dac3ac3258e86cd6afc059ae42eac 100644 GIT binary patch delta 10357 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 delta 10349 zcmXxp37k*W|Htujzebkq3=LrhldRc|EHh)vZeqxm46-B|SrTzIma>&fWTy~g%_LcV zme3+wveXc=l%=Tb6#v)z`?>$e!{hNhpL4gfe9pP|JHB0${p&T^*HwJfukD;Gm+sss zOu>%$3%0--E1gS1ALH;4HpLvPoNJ6p_yT^2iFgw$V(rz=b;I7M>vm#!yoU)GyT-W& z*k_IN-IElSQqc?#;212j*5aAii1;)hj|IYB8Yfs_D&z&2An*ytCaIQM>N{qqNSQEW3oU4zuQ6o1DpTgDH z0e``0tiI72l#Dfq7okS+9t2HDAHFf?f3hHUD|2fwS6HqN&5_lfl5|`QL zTrC`mrEn#xX9utyX4&psJ?w~T_y?#4oy7haxr01IAJx$nNUr$qFa`DCA?gNoc3O*v zV*}!CsO0$%m0VALWj*VF8uAIKsX2kQG5;=maC218(=Y}1VtuT*+Zz574&(W5A%(si zh}>g68I5&`521RP>uXE8L{vNwm5d)_W&8!_>%4DlRivXDb`1|;lW*;Qg}!rc5OET! zL))=8&v%z8Bw^dVmW+!~LwW->_s@Lq+_N|h8{%mkiKX^AM?Sgv*c?0Tx8n=3EAd$z zhz)3kreYOd!V6dl4<2Ovb;JKCsK*J1%r`Ke_{+dMSb#Y02V1`_u{ZHlT;s8fa2_uD zkvyTk{!u%xCngeqf*O$vsGiq7#x!A{V~l?}3L~hHA7e4xhb8eM_QUMQS?f3$HH817 zdN$xETRlHx1>&YZ+rIEB)+YW0TjB|P3d?3%{d3re_}xs#Up@JeiXs?yg1rEfZ~%UR zld#lDd+;h8OHYga;#^Vc=bdtH25!WB*y^-p|MRG+TZZb;A4od5>}M>=522DfxBsgR zbt_D!Vk+u^zhZM7aMn5Q?Ka>e9uGU`++yOn=bg(-T>k>QB5~{A=p7D5J$QEDX{<~f z`@79~G7ctA!xre@pwO2a#b4wiDn7krbC-CTywHjG5stm$Tyc#0!-ljrCJ>Lq7~GA| z;%^wvl|Str&=RAlUyd5#udoDWBKP&(T?!h)_pdVlSoWH83ve&0zW-m&&B6!xKF<8x z&MWti9p8s)V9Iq~M0gLC3)62n_XKVYJcq-HbKbNOe-q1V{qLkumji#GHlQbO*%tdE zYNuL{Om+>q2+Q6`t>!QqX~S zQ4jhGtK%Q|I7Z*IxIUIA9*mJV56j|uEQFb;>#yNJjJnUX;ajNe&;GAXNgO5;e~7+r zc$`AGMNGJE+!PCAH;lp|sG*#OvG_Tv!I{_|b3d^2Qc(9Bg=*L`EQklN1fInZdJip* zc*yvlp`tVur7*&I;kQy*j3a(4a0fm^d>5NzqUX72oPu?56)Nk0Lv^HL$P15PD%K=k zf<-YCi{VXFhw^9fy>L(CvUuU7X^XWvFbXyI8JN}MErzX$&qmmds!&;#xFu?6M`JBq zjamigQ6o@`HQNfi;}~3tx^MYxp6i0`eF_@VHK-dN!94g#b}zisMWSvr9;0y;>iqqI z*RcU{R1PmZRh_UI@vEpFZ$ahKF)V;Nb6P`-V+^sMOhL&r9E;-=R1&Q~_3TGX#4L|` z;g?hs)D+Cb1UwTMlgkV5fITsV`XN{!kD_{7Ft;^)5GuE3Aj{NuD}##TSds%*?SRXZ z$8(#BpTt%p{|R{Z#D~j4KHc^FQX9N zFba6?2q$jEczmy*_525HOI)y!=W=5&9D##TLwp(YW7bF;!6G=6xF#wm((!Tp6_s=k zP^&7oFjLF(T|5Py&=<7|#-n=tDQZNHVrjgIn)|3Cc3wQ{!97uPJQS7f%TYso3Y9xI zQ4KHtm>sWxS_LWS>w?h~)PM|3z(ZIA^GA6uCpJaB*Plf-WH_oPbAothaQs3L=PYXH zS4N%R9`(T2g8C0o`@xq*J>NY>;W!n_&c9Gen5CEvZ4CA#u7|^MA!<$wKW-xvk9xoh zsF53o>d-Rmjwex5QMb5ta2@LW{a6?OF3$Q_@>D8eE$)QM-qF|tPvd)-P|^#(o)6x`dZH2#NbK#3U7EyF~th!?RBMwYS;y@BfJEY$hwK7}e2_G3$YfLhNjO4~A< zgolWK#EZD3jP+nztPSC3*qZu7s3|J(gzbclup#jzR1)sPB+OFQ3;!}oM&*)!f`W$J zd(t+9lBng9h|1Db)B`4?dh`?K!>r|ONDHHqwK|5A3N@mmu`w=3HSA9;f(6RkYAcTk zTK^p>)bJP*1h=n(&FukPOMDeO;)04cA~!LbIKGmNKo8VV`lz}87+=7ja4N=C_QJog z_TUuaYERkq+pwqB|7i-@Inc0*t@DGq*^!opQ;YMP>YHUYKl_M-NI2RIO; zs#$~HLS2`RS}mEVDe7*U(`uf4tq1>G(AX%L^rX2cP3 z*2C7Q9;c!jdR>8LDUiFzmefNDUN`kvc~rRuZ(^_DtM#UrX{ zU^gm0vWxsm5m@pIG^#5T5ucElKBKZqBj zMtJZ4*Z)aDJ6hf*Hq=v4Cu~P;k!Ml+L5Zf8JgxC{;xyE9`xg_i+B5dH9D=QgH=vR= z)XYA~3ZQbNBkKMWv7gre3JRK=0?j?gcc^QON~**bcH&x8(j7+SK(Ur~!vxe`J{~p4 z%TZHv06XDrRKt^6dG<>Ol@ohWJMD$AtiP(QZI2!ucphKogqCg0FHv(J+t%X)mEVh4 z4g2GIoQDq70VBQ-Hj>%R*Ht;-KkL;fx5BQzq} zrlcO~J)Vl1%a2eS%4Sq@{)(ECgbqPHMyVdPZ`{YDSgxbz*5E_b)UA0gSpVlKl%OI{ zCu>KUkI z`*l~=zY2M}S&KTN=6EWqr=Owb_Q$}x!SRyM+lVwqt)7=r8`&(>$m|Tfh`K&+cl#`_ ziO&_^)AoQSX57u^mRHcy2EC!w)f{r|0J298~hv z>}7j=chpO3G4{nfsGYD!Z~Hy522T-x?!V~qS19JbkL_GJ`g-nb;!-${q`HJ-hzIt! z<@HBk<(F*ZN<}?*4Qe$UN6qbhR7a`~u;fj{M#MXDIA(p>3;#*Re}h6kDh{LG&*xBc zc^|cNJvGpCuV6n+!=JDrb{%9>wE!m)@4`CR;uRa}@u=^LW2j|!1FK=)RBK>EBu9KV zg2Ia&_!RZP+=Fe%o1!k5jty`Z#$)JJdzmyu_3(96Qtm}fQOzNibZ=u7;vE=HM$`rr zJ=E@#gcbGvpH3k^2mXhB@E{hzTEo2X-}#!OhHgA+Iem*w@fK=hsz2P$n}}@fFmDRQ4^;ZN|XNvgbKreJU4_ffCm+o&XL`L5;07!1EWP{~$xdXO8~gZNw2hE(o7YiKfRzgURs zXx;bC0jT@V^(kly4xolE_5=H&k%G$lFR&-xL~W&=W-wC^W7k-P0SaFtp&ijKXXzu5tF1&;4LDi4!z1|Jgkol+~J&DTttg~%nYJ-aR zqgF}bIhI3RQ162Is1g1SJK#Ok2qw)9C#&z~QJ6?Ysd--b|7up?DB{ZVEt}JE2yvAK zo_h|L;2ZdF;Oh%*!@7kr)R$jm$=V9_X_tl?xgDq}xPxlQlZ!nUt+5xmNWxUbF~unU2qCD5-mTm2Mk4xzxNr6o%_)E?gvb%W`sePBN-Mk&|7s4QZn!YRexsd0t%eq#+rBUi zwahY6`$L5d)({`{op2b{)5pKCRq!f~B;J4Jzha&`Nr=pyKkU|xcWZZqDP?~cnCH3 zUH02I-4e{ngU224+zRU7IY@(v;||#;TG9{p@j4V+^L#f?1-y(}w{eGUnY@A;x~13# zi~LCTbE7`EnE1dEo8#1@UiiOiKEscwUwh0xy_y}j5$%Hs)UU@FypGRe{;t6zt6sc(MLb2IS*>by68vE!vr z*?qR+Z0b9o4&MLQPg}B;K4Z4Q;hgX~YKQwPsIT&?bx?S?S6g(3T3J2j|K5PEP+cggu8?I z8$3_^8!9KhzhW<;tEdgD-5=%@)GFDHO6pvH+Q@XlI>e(;t8D`^CBC~)K|>gS)v|sF zYQ3&NCE;#VkIrCW%y!L&vIJ_5TcGBCB4+i-epGgE_{;8-?Qff^QmB0;8TC#Wj~%rB zw^PsvME+xQTp!bjC!=yB_jUUpjE1NoosU&<7v{m6s0}CLhTUffMib9Poxe5kENU5N zziCtO9ESh@Z!iV*cr$7wj-r-jj$4+5k7EpRdsOlaL;bXxj7p;AsOt`+a^;cR_L6Fb z+L&fz0-i&?^~&6_9k4(8FH$j*f-XFRJ+ahXYxxA!kgr5#?^i*56-yFly=V2YxQ+N( z)XOU0earp^sOtuzV~@> z*nibrL#^-K4=t%8NZIzpEigAOz!A6#HNvr8DEu-@K#gEK&kuz^CR3@|D4e9pn3H%CmcbcV8aJU<&o4n7@rWIN5_Q~f z9aIbsDrTY{xH+glhT0GA<6~GfTPU2I)loy(6g9NHQMu#eWIT&nmIJff$jn4N@C#If zGLa7Y&dXsJ*2bY6n1kwJ-kdff6;X4Xj7pvvs2*;|6g-bTu<4_r@PE~Oipj)va)rXb zBi=zJdCuH+T`H;pAL25t|E(01e7*97!hcAZj_T2U)G{ob*XFPsYNu<3EpYJ-X&P$$z1_3|<@>ux52UB=A#jW1=iN&k3kwyM!pYdu}H S=EmFQy@~xdj+x=@P5VE3w3z1r diff --git a/po/data.table.pot b/po/data.table.pot index 0340734659..5a83b9f6e1 100644 --- a/po/data.table.pot +++ b/po/data.table.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-21 16:15+0800\n" +"POT-Creation-Date: 2019-10-27 09:58+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1486,7 +1486,7 @@ msgid "Column %d passed to [f]order is type '%s', not yet supported." msgstr "" #: forder.c:714 -msgid "Internal error: column not supported not caught earlier" +msgid "Internal error: column not supported, not caught earlier" msgstr "" #: forder.c:722 diff --git a/po/zh_CN.po b/po/zh_CN.po index 2d6cb1cdda..146c133e9d 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-21 16:15+0800\n" +"POT-Creation-Date: 2019-10-27 09:58+0800\n" "PO-Revision-Date: 2019-10-04 17:06+08\n" "Last-Translator: Michael Chirico \n" "Language-Team: Mandarin\n" @@ -1480,7 +1480,7 @@ msgid "Column %d passed to [f]order is type '%s', not yet supported." msgstr "" #: forder.c:714 -msgid "Internal error: column not supported not caught earlier" +msgid "Internal error: column not supported, not caught earlier" msgstr "" #: forder.c:722 @@ -3081,7 +3081,8 @@ msgstr "鍐呴儴閿欒锛歰 鐨 maxgrpn 灞炴т笌閲嶆柊璁$畻鐨 maxgrpn 涓嶅尮閰" msgid "" "Internal error: nrow=%d ngrp=%d nbit=%d shift=%d highSize=%d nBatch=%d " "batchSize=%d lastBatchSize=%d\n" -msgstr "鍐呴儴閿欒锛歯row=%d ngrp=%d nbit=%d shift=%d highSize=%d nBatch=%d " +msgstr "" +"鍐呴儴閿欒锛歯row=%d ngrp=%d nbit=%d shift=%d highSize=%d nBatch=%d " "batchSize=%d lastBatchSize=%d\n" #: gsumm.c:98 @@ -3137,24 +3138,26 @@ msgid "" "The sum of an integer column for a group was more than type 'integer' can " "hold so the result has been coerced to 'numeric' automatically for " "convenience." -msgstr "鏌愭暣鏁板垪鍒嗙粍姹傚拰鐨勭粨鏋滀腑锛" -"鍑虹幇浜嗚秴杩囦簡鏁村瀷锛坕nterger锛夋暟鍊兼墍鍏佽鏈澶у肩殑鎯呭喌锛" -"鏁呯粨鏋滆鑷姩杞崲涓烘暟鍊肩被鍨嬶紙numeric锛" +msgstr "" +"鏌愭暣鏁板垪鍒嗙粍姹傚拰鐨勭粨鏋滀腑锛屽嚭鐜颁簡瓒呰繃浜嗘暣鍨嬶紙interger锛夋暟鍊兼墍鍏佽鏈澶у肩殑鎯" +"鍐碉紝鏁呯粨鏋滆鑷姩杞崲涓烘暟鍊肩被鍨嬶紙numeric锛" #: gsumm.c:565 #, c-format msgid "" "Type '%s' not supported by GForce sum (gsum). Either add the prefix base::" "sum(.) or turn off GForce optimization using options(datatable.optimize=1)" -msgstr "GForce 姹傚拰锛坓sum锛変笉鏀寔绫诲瀷 '%s'銆傝浣跨敤 base::sum(.) 鎴栬" -"璁剧疆 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" +msgstr "" +"GForce 姹傚拰锛坓sum锛変笉鏀寔绫诲瀷 '%s'銆傝浣跨敤 base::sum(.) 鎴栬呰缃 " +"options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" #: gsumm.c:578 msgid "" "GForce mean can only be applied to columns, not .SD or similar. Likely " "you're looking for 'DT[,lapply(.SD,mean),by=,.SDcols=]'. See ?data.table." -msgstr "GForce 姹傚钩鍧囧间粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦" -"鎴栬浣犲湪鏌ユ壘 'DT[,lapply(.SD,mean),by=,.SDcols=]'銆傚弬瑙 ?data.table 銆" +msgstr "" +"GForce 姹傚钩鍧囧间粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦傛垨璁镐綘鍦ㄦ煡鎵 " +"'DT[,lapply(.SD,mean),by=,.SDcols=]'銆傚弬瑙 ?data.table 銆" #: gsumm.c:579 msgid "mean is not meaningful for factors." @@ -3186,8 +3189,9 @@ msgid "" "Type '%s' not supported by GForce mean (gmean) na.rm=TRUE. Either add the " "prefix base::mean(.) or turn off GForce optimization using options(datatable." "optimize=1)" -msgstr "GForce 姹傚潎鍊硷紙gmean锛変笉鏀寔绫诲瀷 '%s'銆傝浣跨敤 base::mean(.) 鎴栬" -"璁剧疆 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" +msgstr "" +"GForce 姹傚潎鍊硷紙gmean锛変笉鏀寔绫诲瀷 '%s'銆傝浣跨敤 base::mean(.) 鎴栬呰缃 " +"options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" #: gsumm.c:674 msgid "Internal error: unsupported type at the end of gmean" @@ -3199,10 +3203,11 @@ msgid "" "of all items in a list such as .SD, either add the prefix base::min(.SD) or " "turn off GForce optimization using options(datatable.optimize=1). More " "likely, you may be looking for 'DT[,lapply(.SD,min),by=,.SDcols=]'" -msgstr "GForce 姹傛渶灏忓硷紙min锛変粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦" -"瑕佹壘鍒板垪琛ㄤ腑锛堝 .SD锛夋墍鏈夊厓绱犵殑鏈灏忓硷紝椤讳娇鐢 base::min(.SD) 鎴栬" -"璁剧疆 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲銆" -"浣犳洿鍍忔槸鍦ㄦ煡鎵 'DT[,lapply(.SD,min),by=,.SDcols=]'" +msgstr "" +"GForce 姹傛渶灏忓硷紙min锛変粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦傝鎵惧埌鍒楄〃涓" +"锛堝 .SD锛夋墍鏈夊厓绱犵殑鏈灏忓硷紝椤讳娇鐢 base::min(.SD) 鎴栬呰缃 " +"options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲銆備綘鏇村儚鏄湪鏌ユ壘 " +"'DT[,lapply(.SD,min),by=,.SDcols=]'" #: gsumm.c:688 msgid "min is not meaningful for factors." @@ -3217,23 +3222,23 @@ msgstr "gmin 涓 nrow [%d] != length(x) [%d]" msgid "" "No non-missing values found in at least one group. Coercing to numeric type " "and returning 'Inf' for such groups to be consistent with base" -msgstr "鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺" -"涓轰簡涓 base 淇濇寔涓鑷达紝灏嗚繖浜涚粍寮哄埗杞崲涓烘暟鍊肩被鍨嬪苟杩斿洖 鈥業nf鈥欍" +msgstr "" +"鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺備负浜嗕笌 base 淇濇寔涓鑷达紝灏嗚繖浜涚粍寮哄埗杞崲涓烘暟鍊" +"绫诲瀷骞惰繑鍥 鈥業nf鈥欍" #: gsumm.c:756 gsumm.c:891 msgid "" "No non-missing values found in at least one group. Returning 'NA' for such " "groups to be consistent with base" -msgstr "鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺" -"涓轰簡涓 base 淇濇寔涓鑷达紝杩欎簺缁勫皢杩斿洖 鈥楴A鈥欍" +msgstr "" +"鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺備负浜嗕笌 base 淇濇寔涓鑷达紝杩欎簺缁勫皢杩斿洖 鈥楴A鈥欍" #: gsumm.c:783 msgid "" "No non-missing values found in at least one group. Returning 'Inf' for such " "groups to be consistent with base" -msgstr "鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺" -"涓轰簡涓 base 淇濇寔涓鑷达紝杩欎簺缁勫皢杩斿洖 鈥業nf鈥欍" - +msgstr "" +"鍦ㄨ嚦灏戜竴涓垎缁勪腑娌℃湁鍙戠幇缂哄け鍊笺備负浜嗕笌 base 淇濇寔涓鑷达紝杩欎簺缁勫皢杩斿洖 鈥業nf鈥欍" #: gsumm.c:791 msgid "Type 'complex' has no well-defined min" @@ -3245,8 +3250,8 @@ msgid "" "Type '%s' not supported by GForce min (gmin). Either add the prefix base::" "min(.) or turn off GForce optimization using options(datatable.optimize=1)" msgstr "" -"绫诲瀷'%s'涓嶆敮鎸佸簲鐢 GForce 鏈灏忓硷紙gmin锛 浼樺寲銆備綘鍙互娣诲姞鍓嶇紑 base::" -"min(.) 鎴栬呬娇鐢 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" +"绫诲瀷'%s'涓嶆敮鎸佸簲鐢 GForce 鏈灏忓硷紙gmin锛 浼樺寲銆備綘鍙互娣诲姞鍓嶇紑 base::min(.) 鎴" +"鑰呬娇鐢 options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲" #: gsumm.c:806 msgid "" diff --git a/src/forder.c b/src/forder.c index e1a50257ac..01a32477e7 100644 --- a/src/forder.c +++ b/src/forder.c @@ -711,7 +711,7 @@ SEXP forder(SEXP DT, SEXP by, SEXP retGrpArg, SEXP sortGroupsArg, SEXP ascArg, S free_ustr(); // ustr could be left allocated and reused, but free now in case large and we're tight on ram break; default: - STOP(_("Internal error: column not supported not caught earlier")); // # nocov + STOP(_("Internal error: column not supported, not caught earlier")); // # nocov } nradix += nbyte-1+(spare==0); TEND(4) From 2987f13ef4513b73042a13b976e27d6ab312581e Mon Sep 17 00:00:00 2001 From: Hongyuan Jia Date: Tue, 29 Oct 2019 09:13:47 +0800 Subject: [PATCH 08/17] Finish translation to zh_CN assigned to group 2 (Hongyuan Jia) (#3986) * Finish translation. * Resolve review comments. --- po/R-zh_CN.po | 42 +++++++++++++++++++++--------------- po/zh_CN.po | 59 ++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 74 insertions(+), 27 deletions(-) diff --git a/po/R-zh_CN.po b/po/R-zh_CN.po index ec3b630c3c..0b437f3efb 100644 --- a/po/R-zh_CN.po +++ b/po/R-zh_CN.po @@ -87,87 +87,95 @@ msgid "; filled with NA" msgstr "" msgid "A column may not be called .SD. That has special meaning." -msgstr "" +msgstr "鏃犳硶灏嗗垪鍛藉悕涓 .SD锛屽洜涓 .SD 涓虹壒娈婄鍙枫" msgid "class must be length 1" -msgstr "" +msgstr "class 鐨勯暱搴﹀繀椤讳负 1" msgid "between has been passed an argument x of type logical" -msgstr "" +msgstr "浼犲叆 between 鐨勫弬鏁 x 涓洪昏緫锛坙ogical锛夊瀷" msgid "" "'between' function the 'x' argument is a POSIX class while 'lower' was not, " "coercion to POSIX failed with:" msgstr "" +"'between' 涓殑 'x' 鍙傛暟涓 POSIX 绫伙紝鑰 'lower' 骞朵笉鏄紝" +"灏 'lower' 鑷姩杞崲鎴 POSIX 澶辫触锛" msgid "" "'between' function the 'x' argument is a POSIX class while 'upper' was not, " "coercion to POSIX failed with:" msgstr "" +"'between' 涓殑 'x' 鍙傛暟涓 POSIX 绫伙紝鑰 'upper' 骞朵笉鏄紝" +"灏 'upper' 鑷姩杞崲鎴 POSIX 澶辫触锛" msgid "" "'between' lower= and upper= are both POSIXct but have different tzone " "attributes:" msgstr "" +"'between' 涓殑 lower= 鍜 upper= 鍧囦负 POSIXct 绫诲瀷浣嗗嵈鏈変笉鍚岀殑鏃跺尯" +"灞炴э紙tzone锛夛細" msgid ". Please align their time zones." -msgstr "" +msgstr "銆傝纭繚浜岃呯殑鏃跺尯涓鑷淬" msgid "" "'between' arguments are all POSIXct but have mismatched tzone attributes:" msgstr "" +"'between' 鐨勫弬鏁板潎涓 POSIXct 绫诲瀷浣嗘椂鍖哄睘鎬э紙tzone锛変笉鍖归厤锛" msgid ". The UTC times will be compared." -msgstr "" +msgstr "銆傚皢閲囩敤 UTC 鏃堕棿杩涜姣旇緝銆" msgid "trying to use integer64 class when 'bit64' package is not installed" -msgstr "" +msgstr "璇曞浘浣跨敤 intger64 绫诲瀷浣 'bit64' 鍖呭皻鏈畨瑁" msgid "" "Not yet implemented NAbounds=TRUE for this non-numeric and non-character type" msgstr "" +"瀵硅繖绉嶉潪鏁板硷紙numeric锛夊拰闈炲瓧绗︼紙character锛夌殑绫诲瀷锛屽皻鏈疄鐜 NAbounds=TRUE 鐨勫姛鑳" msgid "Some lower>upper for this non-numeric and non-character type" -msgstr "" +msgstr "瀵逛簬璇ラ潪鏁板硷紙numeric锛夊拰闈炲瓧绗︼紙character锛夌被鍨嬬殑杈撳叆锛屽瓨鍦ㄤ竴閮ㄥ垎涓嬬晫锛坙ower锛> 涓婄晫锛坲pper锛夌殑鎯呭喌" msgid "RHS has length()" -msgstr "" +msgstr "鍙虫墜渚э紙RHS锛夌殑闀垮害涓" msgid "; expecting length 2." -msgstr "" +msgstr "锛涘叾闀垮害搴斾负 2銆" msgid "c" msgstr "" msgid "Perhaps you meant %s?" -msgstr "" +msgstr "鎴栬浣犳兂鐢ㄧ殑鏄 %s锛" msgid "The first element should be the lower bound(s);" -msgstr "" +msgstr "绗竴涓厓绱犲簲涓轰笅鐣岋紱" msgid "the second element should be the upper bound(s)." -msgstr "" +msgstr "绗簩涓厓绱犲簲涓轰笂鐣屻" msgid "x." msgstr "" msgid "is type" -msgstr "" +msgstr "鐨勭被鍨嬩负" msgid "which is not supported by data.table join" -msgstr "" +msgstr "锛岃绫诲瀷鏃犳硶鐢ㄤ簬 data.table 鐨勮仈鎺" msgid "i." msgstr "" msgid "Attempting roll join on factor column when joining x." -msgstr "" +msgstr "璇曞浘婊氬姩鑱旀帴锛坮oll join锛夊洜瀛愮被鍨嬶紙factor锛夌殑鍒楋紝杩欏彂鐢熶簬灏 x." msgid "to i." -msgstr "" +msgstr "涓 i." msgid ". Only integer, double or character columns may be roll joined." -msgstr "" +msgstr "鑱旀帴鏃躲備絾鍙湁鏁存暟锛坕nteger锛夈佸弻绮惧害锛坉ouble锛夋垨瀛楃锛坈haracter锛夌被鍨嬬殑鍒楀彲浠ヤ娇鐢ㄦ粴鍔ㄨ仈鎺ワ紙roll join锛夈" msgid "Incompatible join types: x." msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index 146c133e9d..0d5ecee7b6 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -172,25 +172,28 @@ msgid "" "a logical subset, simply wrap with which(), and take the which() outside the " "loop if possible for efficiency." msgstr "" +"i 涓 '%s' 绫诲瀷銆俰 蹇呴』涓烘暣锛坕nteger锛夊瀷锛屾垨鏁板硷紙numeric锛夊瀷锛堝皢琚嚜鍔ㄨ浆鎹㈡垚鏁村瀷骞跺彂鍑鸿鍛婏級銆傚鏋 i 涓" +"涓涓敤浜庣瓫閫夌殑閫昏緫锛坙ogical锛夊悜閲忥紝璇风洿鎺ュ皢瀹冧紶缁 which()锛屼笖濡傛灉鍙兘鐨勮瘽灏 which() 鏀剧疆浜" +"寰幆涔嬪浠ヤ繚鎸侀珮鏁堛" #: assign.c:331 #, c-format msgid "i[%d] is %d which is out of range [1,nrow=%d]." -msgstr "" +msgstr "i[%d] 涓 %d 涓旇秴鍑轰簡鑼冨洿 [1,nrow=%d]銆" #: assign.c:334 #, c-format msgid "Assigning to %d row subset of %d rows\n" -msgstr "" +msgstr "姝e湪涓 %d 琛岋紙鎬绘暟涓 %d 琛岋級杩涜璧嬪糪n" #: assign.c:342 #, c-format msgid "Added %d new column%s initialized with all-NA\n" -msgstr "" +msgstr "娣诲姞浜 %d 涓柊鍒 %s 骞跺叏閮ㄥ垵濮嬪寲涓 NA\n" #: assign.c:347 msgid "length(LHS)==0; no columns to delete or assign RHS to." -msgstr "" +msgstr "宸︽墜渚ч暱搴︿负0锛坙ength(LHS)==0锛夛紱娌℃湁鍒楀彲渚涘垹闄ゆ垨璧嬪肩粰鍙虫墜渚э紙RHS锛夈" #: assign.c:361 msgid "" @@ -198,12 +201,17 @@ msgid "" "Please use a data.table for that. data.table's are over-allocated and don't " "shallow copy." msgstr "" +"鏁版嵁妗嗭紙data.frame锛夌殑 set() 鏄敤浜庝慨鏀圭幇鏈夊垪锛岃岄潪娣诲姞鏂板垪銆" +"璇蜂娇鐢 data.table 鏉ユ坊鍔犳柊鍒椼俤ata.table 鐨勬搷浣滄槸瓒呴鍒嗛厤鐨勶紙over-allocated锛夊苟涓斾笉" +"杩涜娴呮嫹璐濓紙shallow copy锛夈" #: assign.c:372 msgid "" "Coerced j from numeric to integer. Please pass integer for efficiency; e.g., " "2L rather than 2" msgstr "" +"灏 j 浠庢暟鍊硷紙numeric锛夊瀷鑷姩杞崲涓烘暣锛坕nteger锛夊瀷銆備负浜嗕繚鎸侀珮鏁堣鐩存帴浼犲叆鏁村瀷锛屽" +"2L 鑰岄潪 2" #: assign.c:375 #, c-format @@ -211,21 +219,25 @@ msgid "" "j is type '%s'. Must be integer, character, or numeric is coerced with " "warning." msgstr "" +"j 涓 '%s' 鍨嬨俲 蹇呴』涓烘暣锛坕nteger锛夊瀷銆佸瓧绗︼紙character锛夊瀷锛屾垨鏁板硷紙numeric锛夊瀷锛堝皢琚嚜鍔ㄨ浆鎹㈡垚鏁村瀷" +"骞跺彂鍑鸿鍛婏級銆" #: assign.c:377 msgid "" "Can't assign to the same column twice in the same query (duplicates " "detected)." msgstr "" +"鍦ㄤ竴娆℃煡璇腑鏃犳硶瀵瑰悓涓鍒楄祴鍊间袱娆★紙妫娴嬪嚭 +閲嶅椤癸級銆" #: assign.c:378 msgid "newcolnames is supplied but isn't a character vector" -msgstr "" +msgstr "鎸囧畾浜 newcolnames 浣嗗叾骞堕潪涓瀛楃涓插悜閲" #: assign.c:380 #, c-format msgid "RHS_list_of_columns == %s\n" -msgstr "" +msgstr "RHS_list_of_columns == %s\n" #: assign.c:385 #, c-format @@ -233,6 +245,8 @@ msgid "" "RHS_list_of_columns revised to true because RHS list has 1 item which is " "NULL, or whose length %d is either 1 or targetlen (%d). Please unwrap RHS.\n" msgstr "" +"RHS_list_of_columns 鏀逛负鐪燂紙True锛夛紝鍥犱负鍙虫墜渚у垪琛紙RHS list锛夋湁涓瀛愰」" +"涓虹┖鍊硷紙NULL锛夋垨闀垮害 %d 涓 1 鎴 targetlen锛%d锛夈傝鎷嗗紑鍙虫墜渚с俓n" #: assign.c:390 #, c-format @@ -241,17 +255,21 @@ msgid "" "table or data.frame since they are lists too). To delete multiple columns " "use NULL instead. To add multiple empty list columns, use list(list())." msgstr "" +"璇曞浘灏 %d 鍒楄祴鍊间负绌哄垪琛紙鍙兘涓虹┖鏁版嵁銆" +"琛紙table锛夋垨鏁版嵁妗嗭紙data.frame锛夛紝鍥犲悗涓よ呬篃鏄垪琛ㄧ殑涓绉嶏級銆傚垹闄ゅ涓垪鏃" +"璇蜂娇鐢ㄧ┖鍊硷紙NULL锛夈傛坊鍔犲涓┖鍒楄〃鍒楋紙list columns锛夋椂锛岃浣跨敤 list(list())銆" #: assign.c:395 #, c-format msgid "Recycling single RHS list item across %d columns. Please unwrap RHS.\n" -msgstr "" +msgstr "鍥炴敹閲嶇敤锛圧ecycling锛夊崟涓彸鎵嬩晶锛圧HS锛夊垪琛ㄥ瓙椤逛簬 %d 鍒椼傝鎷嗗紑鍙虫墜渚с俓n" #: assign.c:397 #, c-format msgid "" "Supplied %d columns to be assigned %d items. Please see NEWS for v1.12.2." msgstr "" +"璇曞浘灏 %2$d 椤硅祴鍊肩粰 %1$d 鍒椼傝闃呰 v1.12.2 鐨勬洿鏂颁俊鎭紙NEWS锛夈" #: assign.c:405 #, c-format @@ -260,6 +278,9 @@ msgid "" "set() on a data.frame is for changing existing columns, not adding new ones. " "Please use a data.table for that." msgstr "" +"j 涓殑鍒楃紪鍙烽噷绗 %d 椤规槸 %d锛岃秴鍑轰簡鏈夋晥鑼冨洿 [1,ncol=%d]銆" +"鏁版嵁妗嗭紙data.frame锛夌殑 set() 鏄敤浜庝慨鏀圭幇鏈夊垪锛岃岄潪娣诲姞鏂板垪銆" +"璇蜂娇鐢 data.table 鏉ユ坊鍔犳柊鍒椼" #: assign.c:406 #, c-format @@ -267,10 +288,12 @@ msgid "" "Item %d of column numbers in j is %d which is outside range [1,ncol=%d]. Use " "column names instead in j to add new columns." msgstr "" +"j 涓殑鍒楃紪鍙烽噷绗 %d 椤规槸 %d锛岃秴鍑轰簡鏈夋晥鑼冨洿 [1,ncol=%d]銆傝鍦 j 涓娇鐢" +"鍒楀悕鏉ユ坊鍔犳柊鍒椼" #: assign.c:411 msgid "When deleting columns, i should not be provided" -msgstr "" +msgstr "褰撳垹闄ゅ垪鏃讹紝涓嶅簲鎸囧畾 i" #: assign.c:417 #, c-format @@ -282,22 +305,29 @@ msgid "" "full length RHS vector such as vector('list',nrow(DT)); i.e., 'plonk' in the " "new column." msgstr "" +"瀵瑰凡鏈夊垪 '%s' 鐨勮祴鍊煎叾鍙虫墜渚э紙RHS锛夐暱搴︿负闆朵絾骞堕潪绌哄硷紙NULL锛夈傚鏋" +"鎯宠鍒犻櫎鍒楄浣跨敤绌哄硷紙NULL锛夈傚惁鍒欙紝鍙虫墜渚у繀椤" +"闀垮害 > 0锛屽 NA_integer_銆傚鏋滄兂灏嗚鍒楃被鍨嬩慨鏀逛负" +"绌哄垪琛ㄥ垪锛坙ist column锛夛紝姝e鎵鏈変慨鏀瑰垪绫诲瀷鐨勬搷浣滀竴鏍凤紝璇峰湪鍙虫墜渚ф彁渚涗竴涓" +"涓庤鍒楀師鏁版嵁绛夐暱鐨勫悜閲忥紝濡 vector('list',nrow(DT))锛屽嵆锛岀敤鏂版暟鎹浛鎹紙plonk锛夐噸鏂扮敓鎴" +"璇ュ垪銆" #: assign.c:422 #, c-format msgid "" "Internal error in assign.c: length(newcolnames)=%d, length(names)=%d, coln=%d" msgstr "" +"assign.c 鍐呴儴閿欒锛歭ength(newcolnames)=%d, length(names)=%d, coln=%d" #: assign.c:424 #, c-format msgid "Column '%s' does not exist to remove" -msgstr "" +msgstr "瑕佸垹闄ょ殑鍒 '%s' 涓嶅瓨鍦" #: assign.c:430 #, c-format msgid "%d column matrix RHS of := will be treated as one vector" -msgstr "" +msgstr "':=' 鍙虫墜渚э紙RHS锛%d 鍒楃煩闃靛皢琚涓轰竴缁村悜閲" #: assign.c:434 #, c-format @@ -305,6 +335,8 @@ msgid "" "Can't assign to column '%s' (type 'factor') a value of type '%s' (not " "character, factor, integer or numeric)" msgstr "" +"鏃犳硶缁欏洜瀛愶紙factor锛夌被鍨嬪垪 '%s' 璧嬬被鍨嬩负 '%s' 鐨勫硷紙涓嶆槸" +"瀛楃锛坈haracter锛夈佸洜瀛愶紙factor锛夈佹暣鏁帮紙integer锛夋垨鏁板硷紙numeric锛夌被涓殑涓绉嶏級" #: assign.c:439 #, c-format @@ -313,6 +345,9 @@ msgid "" "'recycle' the RHS please use rep() to make this intent clear to readers of " "your code." msgstr "" +"璇曞浘灏 %d 椤硅祴鍊肩粰 %d 椤癸紙鍒 '%s'锛夈傚鏋滄兂" +"'鍥炴敹閲嶇敤'锛'recycle'锛夊彸鎵嬩晶锛岃浣跨敤 rep() 浠ュ皢璇ユ剰鍥炬竻鏅板湴琛ㄨ堪缁欓槄璇" +"浠g爜鐨勪汉銆" #: assign.c:449 msgid "" @@ -321,6 +356,10 @@ msgid "" "or setalloccol() on it first (to pre-allocate space for new columns) before " "assigning by reference to it." msgstr "" +"璇 data.table 涓轰粠纾佺洏涓浇鍏ワ紙濡備娇鐢 readRDS()/" +"load()锛夋垨鎵嬪姩鍒涘缓锛堝浣跨敤 structure()锛夈傝棣栧厛瀵瑰叾杩愯 setDT() " +"鎴 setalloccol() 锛堜互涓烘柊鍒楅鍒嗛厤鍐呭瓨绌洪棿锛夛紝鐒跺悗鍐嶈繘琛" +"寮曠敤璧嬪硷紙assigning by reference锛夋搷浣溿" #: assign.c:450 #, c-format From 639f984634c6fad4cdc26b99908244e5d8cc68d4 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Tue, 29 Oct 2019 09:17:06 +0800 Subject: [PATCH 09/17] balance quotes --- inst/po/zh_CN/LC_MESSAGES/R-data.table.mo | Bin 5025 -> 7963 bytes inst/po/zh_CN/LC_MESSAGES/data.table.mo | Bin 6084 -> 12849 bytes po/zh_CN.po | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/po/zh_CN/LC_MESSAGES/R-data.table.mo b/inst/po/zh_CN/LC_MESSAGES/R-data.table.mo index 84285c5e5871d48b1084d0f8736e119e81b49670..53c2c8f1e3be6b2b434841ac08034979212805d1 100644 GIT binary patch delta 3777 zcmbW3eQXow9mgL-Mj=gUOS-PKY<=358W^~RrtLafs)*8&6+*~Mw|3nhXZsQ#v+q3L zc}dnuPDxE(aN;m0O_o4Nx@90nVwkfK@~WZsuW3`IO4GD=slKy4O^T-dU2Wgra~B6u z_6I%b{JDFc=YH?MpFHj!IS~8XmXZO6>sj2}aDU)p?3-Y4J$`U?mN2#%>;j(zhrlXu z89V`Q`hraZJdXFjgMHxM4U8QHZ-6g@_ua)92W!B`z#o8%jKx?A4`0N>@r{hV05*XE za2)&=Sh~qxZvfqRPl6TTHE=ihFR%*STFTfC&ZJzX3^*>tV)rfgbP#_y$PlJ^;T0{sZg;{|i#iJF!XYN$@Rj z3akY0-iG*-MMqKkHDC%Pi?blUWm~^&E3N=v$GZU{{p`2ko8TWo68sE)NKq~LJopB< z2Rs9kq08XY;6FiRifzaJ6mF_Np@^Q59_Dl%y^7*n2cn)t0aB5YF!GeHuj2NICp%i) zc_u^13A)gwBGi<|eYl}t7)I%R1~=&!mOVfZ&V{-Yg|zxkd>l9B7TqQ;WJg#A<6IsWIs24q^US%7!d{Avi=R`E=p>Qsy;)} zRBi-h?rvEV%@qi@#d2Rz(skY(3n)Px3Tn-A#Lb%}ovWI$oBK35;u9h?=X|4tgMQwu z7=h2L%T^T)hi_69y8~Uq$d|aJ`neE-M?}i28G+A+%C9sw$`OR~c9HT+hU76MZ%}rp z{%zgRNXq4Y^5cjQR4g0y= z5|)uWwTTC1wF!>x^RP-sw@{7jh!0U8$cCrx6%s8`edt`rw~7?xAz4x(0$)OlFSS(i zVCHRjD)oF;JNP6smNcbHosjsc9t~*j$Uv;dSA3S{M;A@O>(5OUogUhxP zTn}i`pq~Otts+#Rp5W9Dedm5UkNT2Z6g{(Rqv|^1G?*~bi=O3Sv=9Ozsm12yEnI8l z_!Vkp%!|awC+s}ZW`EtXyIsTS7}v@^y{)uLv7#QI6DBV#(9{baRtAT zR!S3Iq9{M7fS;>a?QTk?+p8GQRk&fS@B2~{4v7}WS=|st#F_(&Z+l>MU56qqLizQ! z^0h`06_JUQ{?fHJv2w%jn#q&az!mdcM|O6u*o3*O^XBO3?BXeFaK=o`nO8@xwhJo@ zonmIKEOcdOd(6c3LcC{XVfd!8m7Sf0L@}^zu|=625?2-y`L+ZmRm>h$=JgrKv4+yv zFt3~{j<9^kCA0fte(|!^^S;&D=S(m2=U4O76Q4()h`XDwsf#)KoQ*ry=S(s4CyCW5 z_W#0X_Dox6MYQ@7h>R1>@>|0RuTqbc-H7Gi>9=|(aO#t`lL)?SCsbNy5u`$&W}IA&!AAcgEZvuO79&=y7` zRmRAe^TNSg*L7>E8y=d;Ynk4AK6TaS(*x$n(k-6c><9#ylYMpw;G{h&DJUWwRFum< zHIrv@{pYiDy;O&onBDg#Tro3!9b35zJ%w|l)FN#Q_}rO`_#WxU#_i)h{O+ngRQ9lS z_L4a@n(MuC%fKZIy3gm^7a0SD3;raB$otr7T9Ln-bDKn1VN|=*F=GlwLZK3_*>t^Sv?Cj~>KmvM2$wTu2 zB%#}065V4PW3|W4Q@>_tf9t&tmb-iz60)xV9m_6^K_kYg z`0KM{{zOaBWV$1$(g=pBEFi-uKds9j4CHRVV|=L X7@0#RiX*oSe?Ta>qPrJdJx;gn?XX7HhE+U*RDB#eVEK&dcB; z4&gU!XMaWVq_a#+WPFJMy70rw{Pv0T3moDEI-9)~+ex}B3eriEPo_%J9!SoWIBQ9F i^v`j>l+QW-?e{A?3lH3tstb;32|qPI!^7rd&B%YUM`X(Y diff --git a/inst/po/zh_CN/LC_MESSAGES/data.table.mo b/inst/po/zh_CN/LC_MESSAGES/data.table.mo index e80554f0ac64221a831f57e0fcc6bae19b2a025a..fd479822e78ed0f208fca1c7c28d96beebafc29e 100644 GIT binary patch literal 12849 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 C%$I)v diff --git a/po/zh_CN.po b/po/zh_CN.po index 0d5ecee7b6..df5b13745e 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -227,8 +227,8 @@ msgid "" "Can't assign to the same column twice in the same query (duplicates " "detected)." msgstr "" -"鍦ㄤ竴娆℃煡璇腑鏃犳硶瀵瑰悓涓鍒楄祴鍊间袱娆★紙妫娴嬪嚭 -閲嶅椤癸級銆" +"鍦ㄤ竴娆℃煡璇腑鏃犳硶瀵瑰悓涓鍒楄祴鍊间袱娆★紙妫娴嬪嚭" +"閲嶅椤癸級銆" #: assign.c:378 msgid "newcolnames is supplied but isn't a character vector" From 483305311c64291f902e318f1f81ddbd0e235dfb Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Tue, 29 Oct 2019 10:26:04 +0800 Subject: [PATCH 10/17] extra nocov --- src/fread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fread.c b/src/fread.c index 649c445f2c..4b5e0c294a 100644 --- a/src/fread.c +++ b/src/fread.c @@ -1244,7 +1244,7 @@ int freadMain(freadMainArgs _args) { if (mmp == NULL) { #endif int nbit = 8*sizeof(char *); // #nocov - STOP(_("Opened %s file ok but could not memory map it. This is a %dbit process. %s."), filesize_to_str(fileSize), nbit, + STOP(_("Opened %s file ok but could not memory map it. This is a %dbit process. %s."), filesize_to_str(fileSize), nbit, // # nocov nbit<=32 ? _("Please upgrade to 64bit") : _("There is probably not enough contiguous virtual memory available")); // # nocov } sof = (const char*) mmp; From 4f12697295e40506ba71ba91189a4f6f8ae588e7 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Tue, 29 Oct 2019 12:04:23 +0800 Subject: [PATCH 11/17] some coverage of fmelt --- inst/po/en@quot/LC_MESSAGES/data.table.mo | Bin 137032 -> 137050 bytes inst/tests/tests.Rraw | 27 ++++-- po/data.table.pot | 7 +- po/zh_CN.po | 98 ++++++++++------------ src/fmelt.c | 2 +- 5 files changed, 73 insertions(+), 61 deletions(-) diff --git a/inst/po/en@quot/LC_MESSAGES/data.table.mo b/inst/po/en@quot/LC_MESSAGES/data.table.mo index f1c68755f91dac3ac3258e86cd6afc059ae42eac..50a44556cebd53a73504b3bea255daf602874eba 100644 GIT binary patch delta 13816 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 delta 13839 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\n" "Language-Team: LANGUAGE \n" @@ -1176,9 +1176,10 @@ msgid "concat: 'idx' must be an integer vector of length >= 0" msgstr "" #: fmelt.c:75 +#, c-format msgid "" -"concat: 'idx' must take values between 0 and length(vec); 0 <= idx <= " -"length(vec)" +"Internal error in concat: 'idx' must take values between 0 and length(vec); " +"0 <= idx <= %d" msgstr "" #: fmelt.c:102 diff --git a/po/zh_CN.po b/po/zh_CN.po index df5b13745e..ea80a41a34 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-27 09:58+0800\n" +"POT-Creation-Date: 2019-10-29 12:04+0800\n" "PO-Revision-Date: 2019-10-04 17:06+08\n" "Last-Translator: Michael Chirico \n" "Language-Team: Mandarin\n" @@ -172,9 +172,9 @@ msgid "" "a logical subset, simply wrap with which(), and take the which() outside the " "loop if possible for efficiency." msgstr "" -"i 涓 '%s' 绫诲瀷銆俰 蹇呴』涓烘暣锛坕nteger锛夊瀷锛屾垨鏁板硷紙numeric锛夊瀷锛堝皢琚嚜鍔ㄨ浆鎹㈡垚鏁村瀷骞跺彂鍑鸿鍛婏級銆傚鏋 i 涓" -"涓涓敤浜庣瓫閫夌殑閫昏緫锛坙ogical锛夊悜閲忥紝璇风洿鎺ュ皢瀹冧紶缁 which()锛屼笖濡傛灉鍙兘鐨勮瘽灏 which() 鏀剧疆浜" -"寰幆涔嬪浠ヤ繚鎸侀珮鏁堛" +"i 涓 '%s' 绫诲瀷銆俰 蹇呴』涓烘暣锛坕nteger锛夊瀷锛屾垨鏁板硷紙numeric锛夊瀷锛堝皢琚嚜鍔ㄨ浆鎹㈡垚" +"鏁村瀷骞跺彂鍑鸿鍛婏級銆傚鏋 i 涓轰竴涓敤浜庣瓫閫夌殑閫昏緫锛坙ogical锛夊悜閲忥紝璇风洿鎺ュ皢瀹冧紶缁 " +"which()锛屼笖濡傛灉鍙兘鐨勮瘽灏 which() 鏀剧疆浜庡惊鐜箣澶栦互淇濇寔楂樻晥銆" #: assign.c:331 #, c-format @@ -201,17 +201,17 @@ msgid "" "Please use a data.table for that. data.table's are over-allocated and don't " "shallow copy." msgstr "" -"鏁版嵁妗嗭紙data.frame锛夌殑 set() 鏄敤浜庝慨鏀圭幇鏈夊垪锛岃岄潪娣诲姞鏂板垪銆" -"璇蜂娇鐢 data.table 鏉ユ坊鍔犳柊鍒椼俤ata.table 鐨勬搷浣滄槸瓒呴鍒嗛厤鐨勶紙over-allocated锛夊苟涓斾笉" -"杩涜娴呮嫹璐濓紙shallow copy锛夈" +"鏁版嵁妗嗭紙data.frame锛夌殑 set() 鏄敤浜庝慨鏀圭幇鏈夊垪锛岃岄潪娣诲姞鏂板垪銆傝浣跨敤 data." +"table 鏉ユ坊鍔犳柊鍒椼俤ata.table 鐨勬搷浣滄槸瓒呴鍒嗛厤鐨勶紙over-allocated锛夊苟涓斾笉杩涜娴" +"鎷疯礉锛坰hallow copy锛夈" #: assign.c:372 msgid "" "Coerced j from numeric to integer. Please pass integer for efficiency; e.g., " "2L rather than 2" msgstr "" -"灏 j 浠庢暟鍊硷紙numeric锛夊瀷鑷姩杞崲涓烘暣锛坕nteger锛夊瀷銆備负浜嗕繚鎸侀珮鏁堣鐩存帴浼犲叆鏁村瀷锛屽" -"2L 鑰岄潪 2" +"灏 j 浠庢暟鍊硷紙numeric锛夊瀷鑷姩杞崲涓烘暣锛坕nteger锛夊瀷銆備负浜嗕繚鎸侀珮鏁堣鐩存帴浼犲叆鏁" +"鍨嬶紝濡2L 鑰岄潪 2" #: assign.c:375 #, c-format @@ -219,16 +219,14 @@ msgid "" "j is type '%s'. Must be integer, character, or numeric is coerced with " "warning." msgstr "" -"j 涓 '%s' 鍨嬨俲 蹇呴』涓烘暣锛坕nteger锛夊瀷銆佸瓧绗︼紙character锛夊瀷锛屾垨鏁板硷紙numeric锛夊瀷锛堝皢琚嚜鍔ㄨ浆鎹㈡垚鏁村瀷" -"骞跺彂鍑鸿鍛婏級銆" +"j 涓 '%s' 鍨嬨俲 蹇呴』涓烘暣锛坕nteger锛夊瀷銆佸瓧绗︼紙character锛夊瀷锛屾垨鏁板硷紙numeric锛" +"鍨嬶紙灏嗚鑷姩杞崲鎴愭暣鍨嬪苟鍙戝嚭璀﹀憡锛夈" #: assign.c:377 msgid "" "Can't assign to the same column twice in the same query (duplicates " "detected)." -msgstr "" -"鍦ㄤ竴娆℃煡璇腑鏃犳硶瀵瑰悓涓鍒楄祴鍊间袱娆★紙妫娴嬪嚭" -"閲嶅椤癸級銆" +msgstr "鍦ㄤ竴娆℃煡璇腑鏃犳硶瀵瑰悓涓鍒楄祴鍊间袱娆★紙妫娴嬪嚭閲嶅椤癸級銆" #: assign.c:378 msgid "newcolnames is supplied but isn't a character vector" @@ -245,8 +243,8 @@ msgid "" "RHS_list_of_columns revised to true because RHS list has 1 item which is " "NULL, or whose length %d is either 1 or targetlen (%d). Please unwrap RHS.\n" msgstr "" -"RHS_list_of_columns 鏀逛负鐪燂紙True锛夛紝鍥犱负鍙虫墜渚у垪琛紙RHS list锛夋湁涓瀛愰」" -"涓虹┖鍊硷紙NULL锛夋垨闀垮害 %d 涓 1 鎴 targetlen锛%d锛夈傝鎷嗗紑鍙虫墜渚с俓n" +"RHS_list_of_columns 鏀逛负鐪燂紙True锛夛紝鍥犱负鍙虫墜渚у垪琛紙RHS list锛夋湁涓瀛愰」涓虹┖鍊" +"锛圢ULL锛夋垨闀垮害 %d 涓 1 鎴 targetlen锛%d锛夈傝鎷嗗紑鍙虫墜渚с俓n" #: assign.c:390 #, c-format @@ -255,21 +253,21 @@ msgid "" "table or data.frame since they are lists too). To delete multiple columns " "use NULL instead. To add multiple empty list columns, use list(list())." msgstr "" -"璇曞浘灏 %d 鍒楄祴鍊间负绌哄垪琛紙鍙兘涓虹┖鏁版嵁銆" -"琛紙table锛夋垨鏁版嵁妗嗭紙data.frame锛夛紝鍥犲悗涓よ呬篃鏄垪琛ㄧ殑涓绉嶏級銆傚垹闄ゅ涓垪鏃" -"璇蜂娇鐢ㄧ┖鍊硷紙NULL锛夈傛坊鍔犲涓┖鍒楄〃鍒楋紙list columns锛夋椂锛岃浣跨敤 list(list())銆" +"璇曞浘灏 %d 鍒楄祴鍊间负绌哄垪琛紙鍙兘涓虹┖鏁版嵁銆佽〃锛坱able锛夋垨鏁版嵁妗嗭紙data.frame锛夛紝鍥" +"鍚庝袱鑰呬篃鏄垪琛ㄧ殑涓绉嶏級銆傚垹闄ゅ涓垪鏃惰浣跨敤绌哄硷紙NULL锛夈傛坊鍔犲涓┖鍒楄〃鍒" +"锛坙ist columns锛夋椂锛岃浣跨敤 list(list())銆" #: assign.c:395 #, c-format msgid "Recycling single RHS list item across %d columns. Please unwrap RHS.\n" -msgstr "鍥炴敹閲嶇敤锛圧ecycling锛夊崟涓彸鎵嬩晶锛圧HS锛夊垪琛ㄥ瓙椤逛簬 %d 鍒椼傝鎷嗗紑鍙虫墜渚с俓n" +msgstr "" +"鍥炴敹閲嶇敤锛圧ecycling锛夊崟涓彸鎵嬩晶锛圧HS锛夊垪琛ㄥ瓙椤逛簬 %d 鍒椼傝鎷嗗紑鍙虫墜渚с俓n" #: assign.c:397 #, c-format msgid "" "Supplied %d columns to be assigned %d items. Please see NEWS for v1.12.2." -msgstr "" -"璇曞浘灏 %2$d 椤硅祴鍊肩粰 %1$d 鍒椼傝闃呰 v1.12.2 鐨勬洿鏂颁俊鎭紙NEWS锛夈" +msgstr "璇曞浘灏 %2$d 椤硅祴鍊肩粰 %1$d 鍒椼傝闃呰 v1.12.2 鐨勬洿鏂颁俊鎭紙NEWS锛夈" #: assign.c:405 #, c-format @@ -278,9 +276,8 @@ msgid "" "set() on a data.frame is for changing existing columns, not adding new ones. " "Please use a data.table for that." msgstr "" -"j 涓殑鍒楃紪鍙烽噷绗 %d 椤规槸 %d锛岃秴鍑轰簡鏈夋晥鑼冨洿 [1,ncol=%d]銆" -"鏁版嵁妗嗭紙data.frame锛夌殑 set() 鏄敤浜庝慨鏀圭幇鏈夊垪锛岃岄潪娣诲姞鏂板垪銆" -"璇蜂娇鐢 data.table 鏉ユ坊鍔犳柊鍒椼" +"j 涓殑鍒楃紪鍙烽噷绗 %d 椤规槸 %d锛岃秴鍑轰簡鏈夋晥鑼冨洿 [1,ncol=%d]銆傛暟鎹锛坉ata.frame锛" +"鐨 set() 鏄敤浜庝慨鏀圭幇鏈夊垪锛岃岄潪娣诲姞鏂板垪銆傝浣跨敤 data.table 鏉ユ坊鍔犳柊鍒椼" #: assign.c:406 #, c-format @@ -288,8 +285,8 @@ msgid "" "Item %d of column numbers in j is %d which is outside range [1,ncol=%d]. Use " "column names instead in j to add new columns." msgstr "" -"j 涓殑鍒楃紪鍙烽噷绗 %d 椤规槸 %d锛岃秴鍑轰簡鏈夋晥鑼冨洿 [1,ncol=%d]銆傝鍦 j 涓娇鐢" -"鍒楀悕鏉ユ坊鍔犳柊鍒椼" +"j 涓殑鍒楃紪鍙烽噷绗 %d 椤规槸 %d锛岃秴鍑轰簡鏈夋晥鑼冨洿 [1,ncol=%d]銆傝鍦 j 涓娇鐢ㄥ垪鍚嶆潵" +"娣诲姞鏂板垪銆" #: assign.c:411 msgid "When deleting columns, i should not be provided" @@ -305,19 +302,17 @@ msgid "" "full length RHS vector such as vector('list',nrow(DT)); i.e., 'plonk' in the " "new column." msgstr "" -"瀵瑰凡鏈夊垪 '%s' 鐨勮祴鍊煎叾鍙虫墜渚э紙RHS锛夐暱搴︿负闆朵絾骞堕潪绌哄硷紙NULL锛夈傚鏋" -"鎯宠鍒犻櫎鍒楄浣跨敤绌哄硷紙NULL锛夈傚惁鍒欙紝鍙虫墜渚у繀椤" -"闀垮害 > 0锛屽 NA_integer_銆傚鏋滄兂灏嗚鍒楃被鍨嬩慨鏀逛负" -"绌哄垪琛ㄥ垪锛坙ist column锛夛紝姝e鎵鏈変慨鏀瑰垪绫诲瀷鐨勬搷浣滀竴鏍凤紝璇峰湪鍙虫墜渚ф彁渚涗竴涓" -"涓庤鍒楀師鏁版嵁绛夐暱鐨勫悜閲忥紝濡 vector('list',nrow(DT))锛屽嵆锛岀敤鏂版暟鎹浛鎹紙plonk锛夐噸鏂扮敓鎴" -"璇ュ垪銆" +"瀵瑰凡鏈夊垪 '%s' 鐨勮祴鍊煎叾鍙虫墜渚э紙RHS锛夐暱搴︿负闆朵絾骞堕潪绌哄硷紙NULL锛夈傚鏋滄兂瑕佸垹闄ゅ垪" +"璇蜂娇鐢ㄧ┖鍊硷紙NULL锛夈傚惁鍒欙紝鍙虫墜渚у繀椤婚暱搴 > 0锛屽 NA_integer_銆傚鏋滄兂灏嗚鍒楃被" +"鍨嬩慨鏀逛负绌哄垪琛ㄥ垪锛坙ist column锛夛紝姝e鎵鏈変慨鏀瑰垪绫诲瀷鐨勬搷浣滀竴鏍凤紝璇峰湪鍙虫墜渚ф彁渚" +"涓涓笌璇ュ垪鍘熸暟鎹瓑闀跨殑鍚戦噺锛屽 vector('list',nrow(DT))锛屽嵆锛岀敤鏂版暟鎹浛鎹" +"锛坧lonk锛夐噸鏂扮敓鎴愯鍒椼" #: assign.c:422 #, c-format msgid "" "Internal error in assign.c: length(newcolnames)=%d, length(names)=%d, coln=%d" -msgstr "" -"assign.c 鍐呴儴閿欒锛歭ength(newcolnames)=%d, length(names)=%d, coln=%d" +msgstr "assign.c 鍐呴儴閿欒锛歭ength(newcolnames)=%d, length(names)=%d, coln=%d" #: assign.c:424 #, c-format @@ -335,8 +330,8 @@ msgid "" "Can't assign to column '%s' (type 'factor') a value of type '%s' (not " "character, factor, integer or numeric)" msgstr "" -"鏃犳硶缁欏洜瀛愶紙factor锛夌被鍨嬪垪 '%s' 璧嬬被鍨嬩负 '%s' 鐨勫硷紙涓嶆槸" -"瀛楃锛坈haracter锛夈佸洜瀛愶紙factor锛夈佹暣鏁帮紙integer锛夋垨鏁板硷紙numeric锛夌被涓殑涓绉嶏級" +"鏃犳硶缁欏洜瀛愶紙factor锛夌被鍨嬪垪 '%s' 璧嬬被鍨嬩负 '%s' 鐨勫硷紙涓嶆槸瀛楃锛坈haracter锛夈佸洜" +"瀛愶紙factor锛夈佹暣鏁帮紙integer锛夋垨鏁板硷紙numeric锛夌被涓殑涓绉嶏級" #: assign.c:439 #, c-format @@ -345,9 +340,8 @@ msgid "" "'recycle' the RHS please use rep() to make this intent clear to readers of " "your code." msgstr "" -"璇曞浘灏 %d 椤硅祴鍊肩粰 %d 椤癸紙鍒 '%s'锛夈傚鏋滄兂" -"'鍥炴敹閲嶇敤'锛'recycle'锛夊彸鎵嬩晶锛岃浣跨敤 rep() 浠ュ皢璇ユ剰鍥炬竻鏅板湴琛ㄨ堪缁欓槄璇" -"浠g爜鐨勪汉銆" +"璇曞浘灏 %d 椤硅祴鍊肩粰 %d 椤癸紙鍒 '%s'锛夈傚鏋滄兂'鍥炴敹閲嶇敤'锛'recycle'锛夊彸鎵嬩晶锛岃" +"浣跨敤 rep() 浠ュ皢璇ユ剰鍥炬竻鏅板湴琛ㄨ堪缁欓槄璇讳唬鐮佺殑浜恒" #: assign.c:449 msgid "" @@ -356,10 +350,9 @@ msgid "" "or setalloccol() on it first (to pre-allocate space for new columns) before " "assigning by reference to it." msgstr "" -"璇 data.table 涓轰粠纾佺洏涓浇鍏ワ紙濡備娇鐢 readRDS()/" -"load()锛夋垨鎵嬪姩鍒涘缓锛堝浣跨敤 structure()锛夈傝棣栧厛瀵瑰叾杩愯 setDT() " -"鎴 setalloccol() 锛堜互涓烘柊鍒楅鍒嗛厤鍐呭瓨绌洪棿锛夛紝鐒跺悗鍐嶈繘琛" -"寮曠敤璧嬪硷紙assigning by reference锛夋搷浣溿" +"璇 data.table 涓轰粠纾佺洏涓浇鍏ワ紙濡備娇鐢 readRDS()/load()锛夋垨鎵嬪姩鍒涘缓锛堝浣跨敤 " +"structure()锛夈傝棣栧厛瀵瑰叾杩愯 setDT() 鎴 setalloccol() 锛堜互涓烘柊鍒楅鍒嗛厤鍐呭瓨绌" +"闂达級锛岀劧鍚庡啀杩涜寮曠敤璧嬪硷紙assigning by reference锛夋搷浣溿" #: assign.c:450 #, c-format @@ -1209,9 +1202,10 @@ msgid "concat: 'idx' must be an integer vector of length >= 0" msgstr "" #: fmelt.c:75 +#, c-format msgid "" -"concat: 'idx' must take values between 0 and length(vec); 0 <= idx <= " -"length(vec)" +"Internal error in concat: 'idx' must take values between 0 and length(vec); " +"0 <= idx <= %d" msgstr "" #: fmelt.c:102 @@ -3195,8 +3189,8 @@ msgid "" "GForce mean can only be applied to columns, not .SD or similar. Likely " "you're looking for 'DT[,lapply(.SD,mean),by=,.SDcols=]'. See ?data.table." msgstr "" -"GForce 姹傚钩鍧囧间粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦傛垨璁镐綘鍦ㄦ煡鎵 " -"'DT[,lapply(.SD,mean),by=,.SDcols=]'銆傚弬瑙 ?data.table 銆" +"GForce 姹傚钩鍧囧间粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦傛垨璁镐綘鍦ㄦ煡鎵 'DT[,lapply(." +"SD,mean),by=,.SDcols=]'銆傚弬瑙 ?data.table 銆" #: gsumm.c:579 msgid "mean is not meaningful for factors." @@ -3243,10 +3237,10 @@ msgid "" "turn off GForce optimization using options(datatable.optimize=1). More " "likely, you may be looking for 'DT[,lapply(.SD,min),by=,.SDcols=]'" msgstr "" -"GForce 姹傛渶灏忓硷紙min锛変粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦傝鎵惧埌鍒楄〃涓" -"锛堝 .SD锛夋墍鏈夊厓绱犵殑鏈灏忓硷紝椤讳娇鐢 base::min(.SD) 鎴栬呰缃 " -"options(datatable.optimize=1) 鍏抽棴 GForce 浼樺寲銆備綘鏇村儚鏄湪鏌ユ壘 " -"'DT[,lapply(.SD,min),by=,.SDcols=]'" +"GForce 姹傛渶灏忓硷紙min锛変粎閫傜敤浜庡垪锛岃屼笉鑳界敤浜 .SD 鎴栧叾瀹冦傝鎵惧埌鍒楄〃涓紙濡 ." +"SD锛夋墍鏈夊厓绱犵殑鏈灏忓硷紝椤讳娇鐢 base::min(.SD) 鎴栬呰缃 options(datatable." +"optimize=1) 鍏抽棴 GForce 浼樺寲銆備綘鏇村儚鏄湪鏌ユ壘 'DT[,lapply(.SD,min),by=,." +"SDcols=]'" #: gsumm.c:688 msgid "min is not meaningful for factors." diff --git a/src/fmelt.c b/src/fmelt.c index 896f7e8b1c..699e9130db 100644 --- a/src/fmelt.c +++ b/src/fmelt.c @@ -72,7 +72,7 @@ SEXP concat(SEXP vec, SEXP idx) { const int *iidx = INTEGER(idx); for (int i=0; i length(vec)) - error(_("concat: 'idx' must take values between 0 and length(vec); 0 <= idx <= length(vec)")); + error(_("Internal error in concat: 'idx' must take values between 0 and length(vec); 0 <= idx <= %d"), length(vec)); // # nocov } PROTECT(v = allocVector(STRSXP, nidx > 5 ? 5 : nidx)); for (int i=0; i Date: Tue, 29 Oct 2019 12:54:46 +0800 Subject: [PATCH 12/17] complete coverage of fmelt --- inst/tests/tests.Rraw | 12 ++++++++++++ src/fmelt.c | 1 + 2 files changed, 13 insertions(+) diff --git a/inst/tests/tests.Rraw b/inst/tests/tests.Rraw index 569c9fd543..49bf7eb484 100644 --- a/inst/tests/tests.Rraw +++ b/inst/tests/tests.Rraw @@ -3153,6 +3153,18 @@ Sep,33.5,19.4,15.7,11.9,0,100.8,100.8,0,12.7,12.7,0,174.1") test(1037.407, ans$variable, factor(c("1","1"))) test(1037.408, dim(ans<-melt(x, measure.vars=patterns("^y", "^z"), na.rm=TRUE, variable.factor=FALSE)), INT(2,5)) test(1037.409, ans$variable, c("1","1")) + + test(1037.410, melt(data.table(NULL), verbose=TRUE), data.table(NULL), + output="ncol(data) is 0. Nothing to melt") + test(1037.411, melt(x, id.vars=1L, measure.vars=2L, variable.name=c('a', 'b')), + error="'variable.name' must be a character/integer") + test(1037.412, melt(x, id.vars=1L, measure.vars=list(2L), value.name=c('a', 'b')), + error="When 'measure.vars' is a list, 'value.name'") + test(1037.413, melt(x, id.vars=1L, measure.vars=2L, value.name=c('a', 'b')), + error="When 'measure.vars' is either not specified or a character/integer") + x[ , r := as.raw(c(0, 1))] + test(1037.414, melt(x, id.vars='a', measure.vars='r'), + error="Unknown column type 'raw' for column 'r'") } # sorting and grouping of Inf, -Inf, NA and NaN, #4684, #4815 & #4883 diff --git a/src/fmelt.c b/src/fmelt.c index 699e9130db..3d1effa8a9 100644 --- a/src/fmelt.c +++ b/src/fmelt.c @@ -677,6 +677,7 @@ SEXP fmelt(SEXP DT, SEXP id, SEXP measure, SEXP varfactor, SEXP valfactor, SEXP if (!isString(varnames)) error(_("Argument 'variable.name' must be a character vector")); if (!isString(valnames)) error(_("Argument 'value.name' must be a character vector")); if (!isLogical(verboseArg)) error(_("Argument 'verbose' should be logical TRUE/FALSE")); + if (LOGICAL(verboseArg)[0] == TRUE) verbose = TRUE; int ncol = LENGTH(DT); if (!ncol) { if (verbose) Rprintf(_("ncol(data) is 0. Nothing to melt. Returning original data.table.")); From ebfaf5158c5cc8238c550c256ef9259b3c87039a Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Tue, 29 Oct 2019 13:11:16 +0800 Subject: [PATCH 13/17] fix test error --- inst/tests/tests.Rraw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/tests/tests.Rraw b/inst/tests/tests.Rraw index 49bf7eb484..3185e127db 100644 --- a/inst/tests/tests.Rraw +++ b/inst/tests/tests.Rraw @@ -3163,7 +3163,7 @@ Sep,33.5,19.4,15.7,11.9,0,100.8,100.8,0,12.7,12.7,0,174.1") test(1037.413, melt(x, id.vars=1L, measure.vars=2L, value.name=c('a', 'b')), error="When 'measure.vars' is either not specified or a character/integer") x[ , r := as.raw(c(0, 1))] - test(1037.414, melt(x, id.vars='a', measure.vars='r'), + test(1037.414, melt(x, id.vars='x1', measure.vars='r'), error="Unknown column type 'raw' for column 'r'") } From 1982023014335b41046e5911939e670214b73f6c Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Thu, 31 Oct 2019 22:00:09 +0800 Subject: [PATCH 14/17] update message per DeLuns feedback --- inst/po/en@quot/LC_MESSAGES/data.table.mo | Bin 137050 -> 137190 bytes po/data.table.pot | 11 ++++++----- po/zh_CN.po | 11 ++++++----- src/dogroups.c | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/inst/po/en@quot/LC_MESSAGES/data.table.mo b/inst/po/en@quot/LC_MESSAGES/data.table.mo index 50a44556cebd53a73504b3bea255daf602874eba..c7d76ac0cff31ffa2764b21ca41178a9611fe20b 100644 GIT binary patch delta 9380 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 M|J_91WFo!(2kcQ0vH$=8 delta 9205 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\n" "Language-Team: LANGUAGE \n" @@ -953,8 +953,9 @@ msgstr "" #: dogroups.c:291 msgid "" -"RHS is NULL when grouping :=. Makes no sense to delete a column by group. " -"Perhaps use an empty vector instead." +"RHS of := is NULL during grouped assignment, but it's not possible to delete " +"parts of a column. To return nothing for this group, use an empty (0-length) " +"vector or list of vectors." msgstr "" #: dogroups.c:295 @@ -1327,11 +1328,11 @@ msgstr "" msgid "Argument 'verbose' should be logical TRUE/FALSE" msgstr "" -#: fmelt.c:682 +#: fmelt.c:683 msgid "ncol(data) is 0. Nothing to melt. Returning original data.table." msgstr "" -#: fmelt.c:687 +#: fmelt.c:688 msgid "names(data) is NULL. Please report to data.table-help" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index ea80a41a34..42ea0877ca 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-29 12:04+0800\n" +"POT-Creation-Date: 2019-10-31 21:58+0800\n" "PO-Revision-Date: 2019-10-04 17:06+08\n" "Last-Translator: Michael Chirico \n" "Language-Team: Mandarin\n" @@ -979,8 +979,9 @@ msgstr "" #: dogroups.c:291 msgid "" -"RHS is NULL when grouping :=. Makes no sense to delete a column by group. " -"Perhaps use an empty vector instead." +"RHS of := is NULL during grouped assignment, but it's not possible to delete " +"parts of a column. To return nothing for this group, use an empty (0-length) " +"vector or list of vectors." msgstr "" #: dogroups.c:295 @@ -1353,11 +1354,11 @@ msgstr "" msgid "Argument 'verbose' should be logical TRUE/FALSE" msgstr "" -#: fmelt.c:682 +#: fmelt.c:683 msgid "ncol(data) is 0. Nothing to melt. Returning original data.table." msgstr "" -#: fmelt.c:687 +#: fmelt.c:688 msgid "names(data) is NULL. Please report to data.table-help" msgstr "" diff --git a/src/dogroups.c b/src/dogroups.c index da9db1bdde..b2ee20274f 100644 --- a/src/dogroups.c +++ b/src/dogroups.c @@ -288,7 +288,7 @@ SEXP dogroups(SEXP dt, SEXP dtcols, SEXP groups, SEXP grpcols, SEXP jiscols, SEX target = VECTOR_ELT(dt,INTEGER(lhs)[j]-1); RHS = VECTOR_ELT(jval,j%LENGTH(jval)); if (isNull(RHS)) - error(_("RHS is NULL when grouping :=. Makes no sense to delete a column by group. Perhaps use an empty vector instead.")); + error(_("RHS of := is NULL during grouped assignment, but it's not possible to delete parts of a column. To return nothing for this group, use an empty (0-length) vector or list of vectors.")); int vlen = length(RHS); if (vlen>1 && vlen!=grpn) { SEXP colname = isNull(target) ? STRING_ELT(newnames, INTEGER(lhs)[j]-origncol-1) : STRING_ELT(dtnames,INTEGER(lhs)[j]-1); From 9ba41a240e35d09f22bd27365b6e0ed251f9a8ec Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Fri, 1 Nov 2019 00:43:50 +0800 Subject: [PATCH 15/17] update message again; some minor tweaks to nearby code --- inst/po/en@quot/LC_MESSAGES/data.table.mo | Bin 137190 -> 137020 bytes inst/tests/tests.Rraw | 2 +- po/data.table.pot | 43 +++++++++++----------- po/zh_CN.po | 43 +++++++++++----------- src/dogroups.c | 19 +++++----- 5 files changed, 53 insertions(+), 54 deletions(-) diff --git a/inst/po/en@quot/LC_MESSAGES/data.table.mo b/inst/po/en@quot/LC_MESSAGES/data.table.mo index c7d76ac0cff31ffa2764b21ca41178a9611fe20b..ad3ad47d07632a70bcd39d12f68f2f5c6f965723 100644 GIT binary patch delta 9035 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\n" "Language-Team: LANGUAGE \n" @@ -951,14 +951,13 @@ msgid "" "instead (much quicker), or cbind or merge afterwards." msgstr "" -#: dogroups.c:291 +#: dogroups.c:290 msgid "" "RHS of := is NULL during grouped assignment, but it's not possible to delete " -"parts of a column. To return nothing for this group, use an empty (0-length) " -"vector or list of vectors." +"parts of a column." msgstr "" -#: dogroups.c:295 +#: dogroups.c:294 #, c-format msgid "" "Supplied %d items to be assigned to group %d of size %d in column '%s'. The " @@ -967,23 +966,23 @@ msgid "" "make this intent clear to readers of your code." msgstr "" -#: dogroups.c:304 +#: dogroups.c:305 msgid "" "Internal error: Trying to add new column by reference but tl is full; " "setalloccol should have run first at R level before getting to this point in " "dogroups" msgstr "" -#: dogroups.c:319 +#: dogroups.c:320 #, c-format msgid "Group %d column '%s': %s" msgstr "" -#: dogroups.c:326 +#: dogroups.c:327 msgid "j doesn't evaluate to the same number of columns for each group" msgstr "" -#: dogroups.c:360 +#: dogroups.c:361 #, c-format msgid "" "Column %d of j's result for the first group is NULL. We rely on the column " @@ -994,14 +993,14 @@ msgid "" "integer() or numeric()." msgstr "" -#: dogroups.c:363 +#: dogroups.c:364 msgid "" "j appears to be a named vector. The same names will likely be created over " "and over again for each group and slow things down. Try and pass a named " "list (which data.table optimizes) or an unnamed list() instead.\n" msgstr "" -#: dogroups.c:365 +#: dogroups.c:366 #, c-format msgid "" "Column %d of j is a named vector (each item down the rows is named, " @@ -1009,7 +1008,7 @@ msgid "" "over and over for each group). They are ignored anyway.\n" msgstr "" -#: dogroups.c:373 +#: dogroups.c:374 msgid "" "The result of j is a named list. It's very inefficient to create the same " "names over and over again for each group. When j=list(...), any names are " @@ -1018,17 +1017,17 @@ msgid "" "to :=). This message may be upgraded to warning in future.\n" msgstr "" -#: dogroups.c:385 +#: dogroups.c:386 #, c-format msgid "dogroups: growing from %d to %d rows\n" msgstr "" -#: dogroups.c:386 +#: dogroups.c:387 #, c-format msgid "dogroups: length(ans)[%d]!=ngrpcols[%d]+njval[%d]" msgstr "" -#: dogroups.c:419 +#: dogroups.c:420 #, c-format msgid "" "Item %d of j's result for group %d is zero length. This will be filled with " @@ -1037,14 +1036,14 @@ msgid "" "buffer." msgstr "" -#: dogroups.c:426 +#: dogroups.c:427 #, c-format msgid "" "Column %d of result for group %d is type '%s' but expecting type '%s'. " "Column types must be consistent for each group." msgstr "" -#: dogroups.c:428 +#: dogroups.c:429 #, c-format msgid "" "Supplied %d items for column %d of group %d which has %d rows. The RHS " @@ -1053,29 +1052,29 @@ msgid "" "make this intent clear to readers of your code." msgstr "" -#: dogroups.c:443 +#: dogroups.c:444 #, c-format msgid "Wrote less rows (%d) than allocated (%d).\n" msgstr "" -#: dogroups.c:453 +#: dogroups.c:454 #, c-format msgid "Internal error: block 0 [%d] and block 1 [%d] have both run" msgstr "" -#: dogroups.c:455 +#: dogroups.c:456 #, c-format msgid "" "\n" " %s took %.3fs for %d groups\n" msgstr "" -#: dogroups.c:457 +#: dogroups.c:458 #, c-format msgid " eval(j) took %.3fs for %d calls\n" msgstr "" -#: dogroups.c:481 +#: dogroups.c:482 msgid "growVector passed NULL" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index 42ea0877ca..758319e16c 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-31 21:58+0800\n" +"POT-Creation-Date: 2019-11-01 00:42+0800\n" "PO-Revision-Date: 2019-10-04 17:06+08\n" "Last-Translator: Michael Chirico \n" "Language-Team: Mandarin\n" @@ -977,14 +977,13 @@ msgid "" "instead (much quicker), or cbind or merge afterwards." msgstr "" -#: dogroups.c:291 +#: dogroups.c:290 msgid "" "RHS of := is NULL during grouped assignment, but it's not possible to delete " -"parts of a column. To return nothing for this group, use an empty (0-length) " -"vector or list of vectors." +"parts of a column." msgstr "" -#: dogroups.c:295 +#: dogroups.c:294 #, c-format msgid "" "Supplied %d items to be assigned to group %d of size %d in column '%s'. The " @@ -993,23 +992,23 @@ msgid "" "make this intent clear to readers of your code." msgstr "" -#: dogroups.c:304 +#: dogroups.c:305 msgid "" "Internal error: Trying to add new column by reference but tl is full; " "setalloccol should have run first at R level before getting to this point in " "dogroups" msgstr "" -#: dogroups.c:319 +#: dogroups.c:320 #, c-format msgid "Group %d column '%s': %s" msgstr "" -#: dogroups.c:326 +#: dogroups.c:327 msgid "j doesn't evaluate to the same number of columns for each group" msgstr "" -#: dogroups.c:360 +#: dogroups.c:361 #, c-format msgid "" "Column %d of j's result for the first group is NULL. We rely on the column " @@ -1020,14 +1019,14 @@ msgid "" "integer() or numeric()." msgstr "" -#: dogroups.c:363 +#: dogroups.c:364 msgid "" "j appears to be a named vector. The same names will likely be created over " "and over again for each group and slow things down. Try and pass a named " "list (which data.table optimizes) or an unnamed list() instead.\n" msgstr "" -#: dogroups.c:365 +#: dogroups.c:366 #, c-format msgid "" "Column %d of j is a named vector (each item down the rows is named, " @@ -1035,7 +1034,7 @@ msgid "" "over and over for each group). They are ignored anyway.\n" msgstr "" -#: dogroups.c:373 +#: dogroups.c:374 msgid "" "The result of j is a named list. It's very inefficient to create the same " "names over and over again for each group. When j=list(...), any names are " @@ -1044,17 +1043,17 @@ msgid "" "to :=). This message may be upgraded to warning in future.\n" msgstr "" -#: dogroups.c:385 +#: dogroups.c:386 #, c-format msgid "dogroups: growing from %d to %d rows\n" msgstr "" -#: dogroups.c:386 +#: dogroups.c:387 #, c-format msgid "dogroups: length(ans)[%d]!=ngrpcols[%d]+njval[%d]" msgstr "" -#: dogroups.c:419 +#: dogroups.c:420 #, c-format msgid "" "Item %d of j's result for group %d is zero length. This will be filled with " @@ -1063,14 +1062,14 @@ msgid "" "buffer." msgstr "" -#: dogroups.c:426 +#: dogroups.c:427 #, c-format msgid "" "Column %d of result for group %d is type '%s' but expecting type '%s'. " "Column types must be consistent for each group." msgstr "" -#: dogroups.c:428 +#: dogroups.c:429 #, c-format msgid "" "Supplied %d items for column %d of group %d which has %d rows. The RHS " @@ -1079,29 +1078,29 @@ msgid "" "make this intent clear to readers of your code." msgstr "" -#: dogroups.c:443 +#: dogroups.c:444 #, c-format msgid "Wrote less rows (%d) than allocated (%d).\n" msgstr "" -#: dogroups.c:453 +#: dogroups.c:454 #, c-format msgid "Internal error: block 0 [%d] and block 1 [%d] have both run" msgstr "" -#: dogroups.c:455 +#: dogroups.c:456 #, c-format msgid "" "\n" " %s took %.3fs for %d groups\n" msgstr "" -#: dogroups.c:457 +#: dogroups.c:458 #, c-format msgid " eval(j) took %.3fs for %d calls\n" msgstr "" -#: dogroups.c:481 +#: dogroups.c:482 msgid "growVector passed NULL" msgstr "" diff --git a/src/dogroups.c b/src/dogroups.c index b2ee20274f..0cf2d8bca8 100644 --- a/src/dogroups.c +++ b/src/dogroups.c @@ -285,38 +285,39 @@ SEXP dogroups(SEXP dt, SEXP dtcols, SEXP groups, SEXP grpcols, SEXP jiscols, SEX R_len_t origncol = LENGTH(dt); // check jval first before proceeding to add columns, so that if error on the first group, the columns aren't added for (int j=0; j1 && vlen!=grpn) { - SEXP colname = isNull(target) ? STRING_ELT(newnames, INTEGER(lhs)[j]-origncol-1) : STRING_ELT(dtnames,INTEGER(lhs)[j]-1); + SEXP colname = isNull(VECTOR_ELT(dt, INTEGER(lhs)[j]-1)) ? STRING_ELT(newnames, INTEGER(lhs)[j]-origncol-1) : STRING_ELT(dtnames,INTEGER(lhs)[j]-1); error(_("Supplied %d items to be assigned to group %d of size %d in column '%s'. The RHS length must either be 1 (single values are ok) or match the LHS length exactly. If you wish to 'recycle' the RHS please use rep() explicitly to make this intent clear to readers of your code."),vlen,i+1,grpn,CHAR(colname)); // e.g. in #4990 `:=` did not issue recycling warning during grouping. Now it is error not warning. } } + int n = LENGTH(VECTOR_ELT(dt, 0)); for (int j=0; j Date: Sat, 2 Nov 2019 19:51:42 +0800 Subject: [PATCH 16/17] translatation completed --- po/R-zh_CN.po | 80 +++++++++++++++++++++++++++++++++------------------ po/zh_CN.po | 57 +++++++++++++++++++++++++----------- 2 files changed, 92 insertions(+), 45 deletions(-) diff --git a/po/R-zh_CN.po b/po/R-zh_CN.po index 0b437f3efb..8998e6c34b 100644 --- a/po/R-zh_CN.po +++ b/po/R-zh_CN.po @@ -508,47 +508,51 @@ msgid ".SDcols missing at the following indices:" msgstr "" msgid ".SDcols is numeric but has both +ve and -ve indices" -msgstr "" +msgstr ".SDcols 涓烘暟鍊硷紝浣嗗悓鏃跺叿鏈 +ve 鍜 -ve 绱㈠紩" msgid ".SDcols is numeric but out of bounds [1," -msgstr "" +msgstr ".SDcols 涓烘暟鍊间絾瓒呭嚭浜 [1," msgid "] at:" -msgstr "" +msgstr "] 鐨勮寖鍥" msgid ".SDcols should be column numbers or names" -msgstr "" +msgstr ".SDcols 搴斾负鍒楁暟鎴栨槸鍒楀悕" msgid "Some items of .SDcols are not column names:" -msgstr "" +msgstr ".SDcols 涓殑閮ㄤ唤椤圭洰涓嶆槸鍒楀悕" msgid "" "This j doesn't use .SD but .SDcols has been supplied. Ignoring .SDcols. See ?" "data.table." -msgstr "" +msgstr "姝ゅ j 涓嶄娇鐢 .SD 浣嗘彁渚涗簡 .SDcols 锛屽洜姝ゅ拷鐣 .SDcols" +"璇﹁ ?data.table" msgid "" ".SD is locked. Using := in .SD's j is reserved for possible future use; a " "tortuously flexible way to modify by group. Use := in j directly to modify " "by group by reference." -msgstr "" +msgstr ".SD 宸查攣瀹氾紝鍦 .SD 鐨 j 涓娇鐢 := 杩涜鍒嗙粍淇敼鏄緝涓嶇洿瑙傜殑鏂瑰紡" +"姝ゅ姛鑳借淇濈暀浠ヤ緵鏈潵浣跨敤" +"璇风洿鎺ュ湪 j 涓娇鐢 := 渚濈収寮曠敤杩涜鍒嗙粍淇敼" msgid "In `:=`(col1=val1, col2=val2, ...) form, all arguments must be named." -msgstr "" +msgstr "鍦╜:=`(col1=val1, col2=val2, ...) 涓紝鎵鏈夊弬鏁板繀椤昏鎸囧悕" msgid "" "LHS of := must be a symbol, or an atomic vector (column names or positions)." -msgstr "" +msgstr ":= 鐨 LHS 蹇呴』鏄鍙锋垨鏄師瀛愬悜閲(鍒楀悕鎴栨槸鍒楃殑浣嶇疆)" msgid "" "LHS of := appears to be column positions but are outside [1,ncol] range. New " "columns can only be added by name." -msgstr "" +msgstr ":= 鐨 LHS 鏄垪鐨勪綅缃絾瓒呭嚭浜 [1,ncol] 鐨勮寖鍥" +"鏂板垪鍙兘浠ュ悕绉扮殑鏂瑰紡鏂板" msgid "" "LHS of := isn't column names ('character') or positions ('integer' or " "'numeric')" -msgstr "" +msgstr ":= 鐨 LHS 涓嶆槸鍒楀悕('瀛楃')鎴栧垪鐨勪綅缃('鏁存暟'鎴'鏁板)" msgid "" "Invalid .internal.selfref detected and fixed by taking a (shallow) copy of " @@ -559,83 +563,103 @@ msgid "" "copying: ?set, ?setnames and ?setattr. If this message doesn't help, please " "report your use case to the data.table issue tracker so the root cause can " "be fixed or this message improved." -msgstr "" +msgstr "渚︽祴鍒版棤鏁堢殑 .internal.selfref 锛屽凡钘夌敱鑾峰彇 data.table 鐨(娴呭眰)鍓湰鐨勬柟寮忎慨澶" +"浠ヤ究 := 鑳藉埄鐢ㄥ紩鐢ㄥ姞鍏ユ柊鍒" +"鍦ㄨ繃鍘荤殑鏌愪釜鏃堕棿鐐癸紝姝 data.table 宸茶 R 澶嶅埗(鎴栨槸浠 structure()绛夋柟寮忔墜鍔ㄧ敓鎴)" +"璇烽伩鍏 names<- 涓 attr<- 绛夌洰鍓(涓庡伓鍙)鍙兘浼氬湪 R 涓鍒舵暣涓猟ata.table鐨勬搷浣" +"璇锋敼鐢 set* 璇硶浠ラ伩鍏嶅鍒讹紝璇﹁ ?set銆?setnames 鍙 ?setattr" +"濡傛灉浠ヤ笂璁伅鏃犳硶鎻愪緵甯姪锛岃鍥炴姤浣犵殑妗堜緥鑷 data.table 闂杩借釜" +"浠ュ姪浜庝慨澶嶆牴鏈師鍥犳垨鏀硅繘鏈鎭" msgid "" "Cannot assign to an under-allocated recursively indexed list -- L[[i]][,:=] " "syntax is only valid when i is length 1, but it's length" msgstr "" +"鏃犳硶鎸囧畾閰嶇疆涓嶈冻鐨勯掑綊绱㈠紩鍒楄〃" +"-- L[[i]][,:=] 璇硶鍙湁鍦 i 闀垮害涓1鏃舵湁鏁堬紝浣嗗畠鐨勯暦搴" msgid "Internal error -- item '" -msgstr "" +msgstr "鍐呴儴閿欒 -- 椤圭洰" msgid "' not found in names of list" -msgstr "" +msgstr "鏈兘鍦ㄥ悕绉板垪琛ㄤ腑鎵惧埌" msgid "Internal error -- column(s) not found:" -msgstr "" +msgstr "鍐呴儴閿欒 -- 鎵句笉鍒版鍒:" msgid "" "strptime() usage detected and wrapped with as.POSIXct(). This is to minimize " "the chance of assigning POSIXlt columns, which use 40+ bytes to store one " "date (versus 8 for POSIXct). Use as.POSIXct() (which will call strptime() as " "needed internally) to avoid this warning." -msgstr "" +msgstr "渚︽祴鍒颁娇鐢 strptime() 锛屽凡鐢 as.POSIXct() 鍖呰9" +"杩欎箞鍋氭槸涓轰簡灏介噺閬垮厤鍒楄鎸囧畾涓 POSIXlt" +"POSIXlt鐢40涓互涓婄殑浣嶅厓缁勫偍瀛樻棩鏈(鐩歌緝浜 POSIXct 鍙敤8浣嶅厓缁)" +"璇蜂娇鐢 as.POSIXct() 浠ラ伩鍏嶆湰璀﹀憡 (姝ゅ嚱鏁颁細鏍规嵁闇姹傚湪鍐呴儴璋冪敤 strptime())" msgid "" "' is not found in calling scope. Looking in calling scope because this " "symbol was prefixed with .. in the j= parameter." msgstr "" +"鏈兘鍦 calling scope 涓壘鍒帮紝璇锋煡鐪 calling scope" +"鍥犱负 j= 鐨勫弬鏁颁互 .. 浣滀负鍓嶇紑" msgid "Internal error: xcolAns does not pass checks:" -msgstr "" +msgstr "鍐呴儴閿欒 : xcolAns 鏃犳硶閫氳繃妫鏌:" msgid "" "Internal error: irows is NULL when making join result at R level. Should no " "longer happen now we use CsubsetDT earlier." -msgstr "" +msgstr "鍐呴儴閿欒 : 鍦 R 鐢熸垚杩炴帴缁撴灉鏃讹紝irows涓 NULL " +"鎴戜滑宸蹭娇鐢ㄤ簡 CsubsetDT锛岀幇鍦ㄤ笉搴旇鍐嶅彂鐢熶簡" msgid "j (the 2nd argument inside [...]) is a single symbol but column name '" -msgstr "" +msgstr "j ( [...] 涓殑绗簩椤轰綅鍙傛暟) 鏄崟涓鍙疯岄潪鍒楀悕" msgid "' is not found. Perhaps you intended DT[, .." -msgstr "" +msgstr "鏈鎵惧埌锛屼篃璁镐綘鎵撶畻 DT[, .." msgid "" "]. This difference to data.frame is deliberate and explained in FAQ 1.1." msgstr "" +"] 锛屽湪甯歌闂 1.1 涓湁瑙i噴dat.table涓巇ata.frame鐨勫樊鍒" msgid "" "Internal error: j has created a data.table result containing a NULL column" -msgstr "" +msgstr "鍐呴儴閿欒 : j 鍒涘缓浜嗕竴涓湁鍒椾负 NULL 鐨 data.table" msgid "" "The column '.N' can't be grouped because it conflicts with the special .N " "variable. Try setnames(DT,'.N','N') first." -msgstr "" +msgstr "鏃犳硶瀵 '.N' 鍒楄繘琛屽垎缁勶紝鍥犱负涓 data.table 鐗规湁鐨 .N 鍙橀噺鍐茬獊" +"璇峰厛灏濊瘯 setnames(DT,'.N','N')" msgid "" "The column '.I' can't be grouped because it conflicts with the special .I " "variable. Try setnames(DT,'.I','I') first." -msgstr "" +msgstr "鏃犳硶瀵 '.l' 鍒楄繘琛屽垎缁勶紝鍥犱负涓 data.table 鐗规湁鐨 .l 鍙橀噺鍐茬獊" +"璇峰厛灏濊瘯 setnames(DT,'.I','I')" msgid "logical error. i is not data.table, but mult='all' and 'by'=.EACHI" -msgstr "" +msgstr "閫昏緫閿欒: i 涓嶆槸data.table锛屼絾 mult='all' 鍙 'by'=.EACHI" msgid "Internal error: by= is missing" -msgstr "" +msgstr "鍐呴儴閿欒 : 缂哄皯 by=" + msgid "Internal error: byindex not the index name" -msgstr "" +msgstr "鍐呴儴閿欒 : byindex 涓嶆槸绱㈠紩鍚嶇О" msgid "Internal error: byindex not found" -msgstr "" +msgstr "鍐呴儴閿欒 : 鎵句笉鍒 byindex" msgid "" "Unable to optimize call to mean() and could be very slow. You must name 'na." "rm' like that otherwise if you do mean(x,TRUE) the TRUE is taken to mean " "'trim' which is the 2nd argument of mean. 'trim' is not yet optimized." -msgstr "" +msgstr "鏃犳硶浼樺寲瀵 mean() 鐨勮皟鐢紝杩欏彲鑳藉鑷磋繍琛岄潪甯哥紦鎱" +"鎮ㄥ繀椤讳娇鐢 na.rm=TRUE锛屽惁鍒欏鏋滄偍鐩存帴浣跨敤 mean(x,TRUE)" +"浼氳璁ゅ畾涓 trim=TRUE锛宼rim 鏄 mean() 涓皻鏈浼樺寲鐨勭浜岄『浣嶅弬鏁" msgid "Internal error: length(irows)!=length(o__)" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index 758319e16c..eb7bde2138 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -975,13 +975,17 @@ msgid "" "All items in j=list(...) should be atomic vectors or lists. If you are " "trying something like j=list(.SD,newcol=mean(colA)) then use := by group " "instead (much quicker), or cbind or merge afterwards." -msgstr "" +msgstr "j=list(...) 涓殑鎵鏈夐」鐩繀椤绘槸鍘熷瓙鍚戦噺鎴栧垪琛" +"濡傛灉鎮ㄨ瘯鍥捐繘琛 j=list(.SD,newcol=mean(colA)) 涔嬬被鐨勭殑鎿嶄綔" +"璇蜂娇鐢 := by group 浠f浛(鏇村揩閫)锛屾垨浜嬪悗浣跨敤 cbind()銆乵erge()" #: dogroups.c:290 msgid "" "RHS of := is NULL during grouped assignment, but it's not possible to delete " "parts of a column." -msgstr "" +msgstr "鐢 := 鍒嗙粍鏃 RHS 涓 NULL" +"浣嗙劇娉曞埅闄ら儴鍒嗗垪" + #: dogroups.c:294 #, c-format @@ -990,23 +994,27 @@ msgid "" "RHS length must either be 1 (single values are ok) or match the LHS length " "exactly. If you wish to 'recycle' the RHS please use rep() explicitly to " "make this intent clear to readers of your code." -msgstr "" +msgstr "鎻愪緵 %d 涓」鍒嗛厤缁欑 '%s' 鍒椾腑鐨勭 %d 缁勶紝缁勭殑澶у皬涓 %d " +"RHS 鐨勯暱搴﹀繀椤绘槸 1(鍙互鏄崟涓) 鎴栧畬鍏ㄧ鍚 LHS 鐨勯暱搴" +"濡傛灉鎮ㄦ兂鍥炴敹(recycle) RHS锛岃浣跨敤 rep() 鍚戜綘鐨勪唬鐮佽鑰呮槑纭〃杈句綘鐨勬剰鍥" + #: dogroups.c:305 msgid "" "Internal error: Trying to add new column by reference but tl is full; " "setalloccol should have run first at R level before getting to this point in " "dogroups" -msgstr "" +msgstr "鍐呴儴閿欒 : 灏濊瘯渚濈収寮曠敤澧炲姞鏂板垪浣 tl 宸叉弧" +"鍦ㄨ繘鍏 dogroups 涔嬪墠锛宻etalloccol 搴旇鍏堝湪 R 杩愯" #: dogroups.c:320 #, c-format msgid "Group %d column '%s': %s" -msgstr "" +msgstr "鍒 '%s' 绗 %d 缁 : %s" #: dogroups.c:327 msgid "j doesn't evaluate to the same number of columns for each group" -msgstr "" +msgstr "j 浼扮畻鍑虹殑姣忕粍鐨勫垪鏁颁笉鍚" #: dogroups.c:361 #, c-format @@ -1017,14 +1025,18 @@ msgid "" "groups (and those are replaced with NA of appropriate type and recycled) but " "not for the first. Please use a typed empty vector instead, such as " "integer() or numeric()." -msgstr "" +msgstr "j 鐨勭粨鏋滀腑绗 %d 鍒楀湪绗 1 缁勪腑涓 NULL" +"鎴戜滑渚濊禆绗 1 缁勭殑鍒楃被鍨嬪幓鍐冲畾鍓╀綑缁勭殑绫诲瀷(闇瑕佷竴鑷存)" +"绌 (NULL) 鍒楀彲浠ュ嚭鐜板湪鍚庨潰鐨勭粍(閫傚綋鐨勪互 NA 鍙栦唬骞跺洖鏀)浣嗕笉鑳芥槸绗 1 缁" +"璇疯緭鍏ョ┖鍚戦噺浠f浛锛屼緥濡 integer() 鎴 numeric()" #: dogroups.c:364 msgid "" "j appears to be a named vector. The same names will likely be created over " "and over again for each group and slow things down. Try and pass a named " "list (which data.table optimizes) or an unnamed list() instead.\n" -msgstr "" +msgstr "j 鏄悕绉板悜閲忥紝杩欏彲鑳戒娇鐩稿悓鐨勫悕绉颁笉鍋滈噸澶嶅垱寤哄鑷撮熷害鍙樻參" +"璇峰皾璇曡緭鍏ュ悕绉板垪琛(杈冮傚悎 data.table)鎴栨槸闈炲悕绉板垪琛ㄤ唬鏇縗n" #: dogroups.c:366 #, c-format @@ -1032,7 +1044,9 @@ msgid "" "Column %d of j is a named vector (each item down the rows is named, " "somehow). Please remove those names for efficiency (to save creating them " "over and over for each group). They are ignored anyway.\n" -msgstr "" +msgstr "j 鐨勭 %d 鍒楁槸鍚嶇О鍚戦噺(鏁磋鐨勯」閮芥槸鍚嶇О)" +"涓轰簡鏁堢巼璇风Щ闄よ繖浜涘悕绉(閬垮厤鍦ㄦ瘡缁勯噸澶嶅垱寤鸿繖浜涘悕绉)" +"鎬讳箣浠栦滑琚拷鐣ヤ簡\n" #: dogroups.c:374 msgid "" @@ -1041,12 +1055,15 @@ msgid "" "detected, removed and put back after grouping has completed, for efficiency. " "Using j=transform(), for example, prevents that speedup (consider changing " "to :=). This message may be upgraded to warning in future.\n" -msgstr "" +msgstr "j 鐨勭粨鏋滄槸鍚嶇О鍒楄〃锛屽湪姣忕粍涓嶅仠閲嶅鍒涘缓鐩稿悓鐨勫悕绉板緢娌℃晥鐜" +"涓轰簡鎻愰珮鏁堢巼锛屽綋 j=list(...) 鏃朵睛娴嬪埌鐨勬墍鏈夊悕绉颁細琚Щ鍑猴紝寰呭垎缁勫畬鎴愬悗鍐嶆斁鍥炴潵" +"鍙互浣跨敤 j=transform() 閬垮厤杩欑鍔犻" +"姝よ鎭彲鑳戒細鍦ㄦ湭鏉ュ崌绾т负璀﹀憡\n" #: dogroups.c:386 #, c-format msgid "dogroups: growing from %d to %d rows\n" -msgstr "" +msgstr "dogroups: 浠 %d 鍒楀鍔犺嚦 %d 鍒梊n" #: dogroups.c:387 #, c-format @@ -1060,14 +1077,17 @@ msgid "" "%d NAs to match the longest column in this result. Later groups may have a " "similar problem but only the first is reported to save filling the warning " "buffer." -msgstr "" +msgstr "j 鐨勭粨鏋滅 %d 椤瑰湪绗 %d 缁勪腑涓洪浂闀垮害(zero length)" +"灏嗕娇鐢 %d 涓 NA 濉叆浠ョ鍚堢粨鏋滀腑鏈闀垮垪鐨勯暱搴" +"鍚庨潰鐨勫垎缁勪篃鏈夌浉鍚岄棶棰橈紝浣嗗彧鍥炴姤绗竴缁勪互閬垮厤杩囧璀﹀憡" #: dogroups.c:427 #, c-format msgid "" "Column %d of result for group %d is type '%s' but expecting type '%s'. " "Column types must be consistent for each group." -msgstr "" +msgstr "缁撴灉鐨勭 %d 鍒楀湪绗 %d 缁勪腑鏄 '%s' 绫诲埆鑰岄潪棰勬湡鐨 '%s' 绫诲埆" +"鎵鏈夌粍鐨勫垪绫诲埆蹇呴』涓鑷" #: dogroups.c:429 #, c-format @@ -1076,24 +1096,27 @@ msgid "" "length must either be 1 (single values are ok) or match the LHS length " "exactly. If you wish to 'recycle' the RHS please use rep() explicitly to " "make this intent clear to readers of your code." -msgstr "" +msgstr "鎻愪緵 %d 椤圭粰绗 %d 鍒楃殑绗 %d 缁勶紝杩欑粍鏈 %d 琛" +"RHS闀峰害蹇呴爤鐐 1 (鍙互浣跨敤鍠嬪) 鎴栬垏 LHS 闀峰害瀹屽叏鍖归厤" +"濡傛灉鎮ㄦ兂鍥炴敹(recycle) RHS锛岃浣跨敤 rep() 鍚戜綘鐨勪唬鐮佽鑰呮槑纭〃杈句綘鐨勬剰鍥" #: dogroups.c:444 #, c-format msgid "Wrote less rows (%d) than allocated (%d).\n" -msgstr "" +msgstr "鍐欏叆鐨勮 (%d) 灏戜簬鍒嗛厤鐨 (%d)\n" #: dogroups.c:454 #, c-format msgid "Internal error: block 0 [%d] and block 1 [%d] have both run" -msgstr "" +msgstr "鍐呴儴閿欒 : 鍖哄潡 0 [%d] 涓庡尯鍧 1 [%d] 閮借繍琛屼簡" #: dogroups.c:456 #, c-format msgid "" "\n" " %s took %.3fs for %d groups\n" -msgstr "" +msgstr "\n" +" %s 鑺变簡 %s.3fs 鍦 %d 涓粍\n" #: dogroups.c:458 #, c-format From 25511ea029bb1171784b06bc5df5d95b2a74b2bc Mon Sep 17 00:00:00 2001 From: soappp9527 Date: Wed, 6 Nov 2019 22:49:23 +0800 Subject: [PATCH 17/17] fixed somme message 1 --- po/R-zh_CN.po | 20 ++++++++++---------- po/zh_CN.po | 6 +++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/po/R-zh_CN.po b/po/R-zh_CN.po index 8998e6c34b..8193cd6caf 100644 --- a/po/R-zh_CN.po +++ b/po/R-zh_CN.po @@ -514,13 +514,13 @@ msgid ".SDcols is numeric but out of bounds [1," msgstr ".SDcols 涓烘暟鍊间絾瓒呭嚭浜 [1," msgid "] at:" -msgstr "] 鐨勮寖鍥" +msgstr "] 鐨勮寖鍥:" msgid ".SDcols should be column numbers or names" msgstr ".SDcols 搴斾负鍒楁暟鎴栨槸鍒楀悕" msgid "Some items of .SDcols are not column names:" -msgstr ".SDcols 涓殑閮ㄤ唤椤圭洰涓嶆槸鍒楀悕" +msgstr ".SDcols 涓殑閮ㄤ唤椤圭洰涓嶆槸鍒楀悕:" msgid "" "This j doesn't use .SD but .SDcols has been supplied. Ignoring .SDcols. See ?" @@ -552,7 +552,7 @@ msgstr ":= 鐨 LHS 鏄垪鐨勪綅缃絾瓒呭嚭浜 [1,ncol] 鐨勮寖鍥" msgid "" "LHS of := isn't column names ('character') or positions ('integer' or " "'numeric')" -msgstr ":= 鐨 LHS 涓嶆槸鍒楀悕('瀛楃')鎴栧垪鐨勪綅缃('鏁存暟'鎴'鏁板)" +msgstr ":= 鐨 LHS 涓嶆槸鍒楀悕('瀛楃')鎴栧垪鐨勪綅缃('鏁存暟'鎴'鏁板')" msgid "" "Invalid .internal.selfref detected and fixed by taking a (shallow) copy of " @@ -579,10 +579,10 @@ msgstr "" "-- L[[i]][,:=] 璇硶鍙湁鍦 i 闀垮害涓1鏃舵湁鏁堬紝浣嗗畠鐨勯暦搴" msgid "Internal error -- item '" -msgstr "鍐呴儴閿欒 -- 椤圭洰" +msgstr "鍐呴儴閿欒 -- 椤圭洰 '" msgid "' not found in names of list" -msgstr "鏈兘鍦ㄥ悕绉板垪琛ㄤ腑鎵惧埌" +msgstr "' 鏈兘鍦ㄥ悕绉板垪琛ㄤ腑鎵惧埌" msgid "Internal error -- column(s) not found:" msgstr "鍐呴儴閿欒 -- 鎵句笉鍒版鍒:" @@ -601,7 +601,7 @@ msgid "" "' is not found in calling scope. Looking in calling scope because this " "symbol was prefixed with .. in the j= parameter." msgstr "" -"鏈兘鍦 calling scope 涓壘鍒帮紝璇锋煡鐪 calling scope" +"' 鏈兘鍦ㄨ皟鐢ㄨ寖鍥 (calling scope) 涓壘鍒帮紝璇锋煡鐪嬭皟鐢ㄨ寖鍥" "鍥犱负 j= 鐨勫弬鏁颁互 .. 浣滀负鍓嶇紑" msgid "Internal error: xcolAns does not pass checks:" @@ -614,15 +614,15 @@ msgstr "鍐呴儴閿欒 : 鍦 R 鐢熸垚杩炴帴缁撴灉鏃讹紝irows涓 NULL " "鎴戜滑宸蹭娇鐢ㄤ簡 CsubsetDT锛岀幇鍦ㄤ笉搴旇鍐嶅彂鐢熶簡" msgid "j (the 2nd argument inside [...]) is a single symbol but column name '" -msgstr "j ( [...] 涓殑绗簩椤轰綅鍙傛暟) 鏄崟涓鍙疯岄潪鍒楀悕" +msgstr "j ( [...] 涓殑绗簩椤轰綅鍙傛暟) 鏄崟涓鍙疯屽垪鍚 '" msgid "' is not found. Perhaps you intended DT[, .." -msgstr "鏈鎵惧埌锛屼篃璁镐綘鎵撶畻 DT[, .." +msgstr "' 鏈鎵惧埌锛屼篃璁镐綘鎵撶畻 DT[, .." msgid "" "]. This difference to data.frame is deliberate and explained in FAQ 1.1." msgstr "" -"] 锛屽湪甯歌闂 1.1 涓湁瑙i噴dat.table涓巇ata.frame鐨勫樊鍒" +"] 锛屽湪FAQ 1.1 涓湁瑙i噴dat.table涓巇ata.frame鐨勫樊鍒" msgid "" "Internal error: j has created a data.table result containing a NULL column" @@ -637,7 +637,7 @@ msgstr "鏃犳硶瀵 '.N' 鍒楄繘琛屽垎缁勶紝鍥犱负涓 data.table 鐗规湁鐨 .N 鍙 msgid "" "The column '.I' can't be grouped because it conflicts with the special .I " "variable. Try setnames(DT,'.I','I') first." -msgstr "鏃犳硶瀵 '.l' 鍒楄繘琛屽垎缁勶紝鍥犱负涓 data.table 鐗规湁鐨 .l 鍙橀噺鍐茬獊" +msgstr "鏃犳硶瀵 '.I' 鍒楄繘琛屽垎缁勶紝鍥犱负涓 data.table 鐗规湁鐨 .I 鍙橀噺鍐茬獊" "璇峰厛灏濊瘯 setnames(DT,'.I','I')" msgid "logical error. i is not data.table, but mult='all' and 'by'=.EACHI" diff --git a/po/zh_CN.po b/po/zh_CN.po index cd38962114..83818be9c7 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -976,7 +976,7 @@ msgid "" "trying something like j=list(.SD,newcol=mean(colA)) then use := by group " "instead (much quicker), or cbind or merge afterwards." msgstr "j=list(...) 涓殑鎵鏈夐」鐩繀椤绘槸鍘熷瓙鍚戦噺鎴栧垪琛" -"濡傛灉鎮ㄨ瘯鍥捐繘琛 j=list(.SD,newcol=mean(colA)) 涔嬬被鐨勭殑鎿嶄綔" +"濡傛灉鎮ㄨ瘯鍥捐繘琛 j=list(.SD,newcol=mean(colA)) 涔嬬被鐨勬搷浣" "璇蜂娇鐢 := by group 浠f浛(鏇村揩閫)锛屾垨浜嬪悗浣跨敤 cbind()銆乵erge()" #: dogroups.c:290 @@ -1095,7 +1095,7 @@ msgid "" "length must either be 1 (single values are ok) or match the LHS length " "exactly. If you wish to 'recycle' the RHS please use rep() explicitly to " "make this intent clear to readers of your code." -msgstr "鎻愪緵 %d 椤圭粰绗 %d 鍒楃殑绗 %d 缁勶紝杩欑粍鏈 %d 琛" +msgstr "鎻愪緵 %1$d 椤圭粰绗 %3$d 绲勭殑绗 %2$d 鍒楋紝杩欑粍鏈 %4$d 琛" "RHS闀峰害蹇呴爤鐐 1 (鍙互浣跨敤鍠嬪) 鎴栬垏 LHS 闀峰害瀹屽叏鍖归厤" "濡傛灉鎮ㄦ兂鍥炴敹(recycle) RHS锛岃浣跨敤 rep() 鍚戜綘鐨勪唬鐮佽鑰呮槑纭〃杈句綘鐨勬剰鍥" @@ -1115,7 +1115,7 @@ msgid "" "\n" " %s took %.3fs for %d groups\n" msgstr "\n" -" %s 鑺变簡 %s.3fs 鍦 %d 涓粍\n" +" %s 鑺变簡 %.3fs 鍦 %d 涓粍\n" #: dogroups.c:458 #, c-format