[Dplr-commits] r1001 - in pkg/dplR: . R inst/po/fi/LC_MESSAGES man po

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Wed Sep 9 17:14:44 CEST 2015


Author: mvkorpel
Date: 2015-09-09 17:14:43 +0200 (Wed, 09 Sep 2015)
New Revision: 1001

Modified:
   pkg/dplR/ChangeLog
   pkg/dplR/DESCRIPTION
   pkg/dplR/R/helpers.R
   pkg/dplR/R/read.crn.R
   pkg/dplR/R/read.tridas.R
   pkg/dplR/R/read.tucson.R
   pkg/dplR/R/redfit.R
   pkg/dplR/R/skel.plot.R
   pkg/dplR/R/write.compact.R
   pkg/dplR/R/write.tucson.R
   pkg/dplR/inst/po/fi/LC_MESSAGES/R-dplR.mo
   pkg/dplR/man/skel.plot.Rd
   pkg/dplR/po/R-dplR.pot
   pkg/dplR/po/R-fi.po
Log:
* In various .R files:
- Argument values are checked more thoroughly: 'prec', 'header'.
- 'if (condition) optionA else optionB' is used instead of
  'ifelse(condition, optionA, optionB)' where appropriate.
- Number of characters is used instead of display width where
  appropriate, or vice versa. Counterparts:
    strtrim() and substr();
    nchar(type = "width") and nchar() with default 'type';
    format(string, width = w, justify = "left") and
      stringr::str_pad(string, w, side="right").

* Message translations / templates were updated

* Note / TODO: There is still code where the potential difference
  between the number of characters and the display width of strings is
  not taken into account or the two are mixed
  inappropriately. Consider the use of encodeString() in write.crn()
  and write.tucson().



Modified: pkg/dplR/ChangeLog
===================================================================
--- pkg/dplR/ChangeLog	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/ChangeLog	2015-09-09 15:14:43 UTC (rev 1001)
@@ -13,6 +13,18 @@
 -------------
 - Added treeMean function.
 
+Various .R files
+----------------
+- Argument values are checked more thoroughly: 'prec', 'header'.
+- 'if (condition) optionA else optionB' is used instead of
+  'ifelse(condition, optionA, optionB)' where appropriate.
+- Number of characters is used instead of display width where
+  appropriate, or vice versa. Counterparts:
+    strtrim() and substr();
+    nchar(type = "width") and nchar() with default 'type';
+    format(string, width = w, justify = "left") and
+      stringr::str_pad(string, w, side="right").
+
 * CHANGES IN dplR VERSION 1.6.3
 
 File: crn.plot.R

Modified: pkg/dplR/DESCRIPTION
===================================================================
--- pkg/dplR/DESCRIPTION	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/DESCRIPTION	2015-09-09 15:14:43 UTC (rev 1001)
@@ -3,7 +3,7 @@
 Type: Package
 Title: Dendrochronology Program Library in R
 Version: 1.6.4
-Date: 2015-08-06
+Date: 2015-09-09
 Authors at R: c(person("Andy", "Bunn", role = c("aut", "cph",
         "cre", "trl"), email = "andy.bunn at wwu.edu"), person("Mikko",
         "Korpela", role = c("aut", "trl")), person("Franco", "Biondi",

Modified: pkg/dplR/R/helpers.R
===================================================================
--- pkg/dplR/R/helpers.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/helpers.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -170,7 +170,7 @@
         if (is.null(limit)) {
             new.name <- paste0(orig.name, last.part)
         } else {
-            new.name <- paste0(strtrim(orig.name, limit - idx.length),
+            new.name <- paste0(substr(orig.name, 1, limit - idx.length),
                                last.part)
         }
     }
@@ -215,7 +215,7 @@
                 write.map <- TRUE
             }
             rename.flag[over.limit] <- TRUE
-            x.cut[over.limit] <- strtrim(x.cut[over.limit], limit)
+            x.cut[over.limit] <- substr(x.cut[over.limit], 1, limit)
         }
     }
     unique.cut <- unique(x.cut)
@@ -245,7 +245,7 @@
         }
 
         if (!is.null(limit)) {
-            x.cut <- strtrim(x.cut, limit-1)
+            x.cut <- substr(x.cut, 1, limit - 1)
         }
         x.cut[y != ""] <- NA
         unique.cut <- unique(x.cut) # may contain NA

Modified: pkg/dplR/R/read.crn.R
===================================================================
--- pkg/dplR/R/read.crn.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/read.crn.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -23,8 +23,8 @@
                         domain="R-dplR"))
             is.head <- FALSE # No header lines
         }
-    } else if(!is.logical(header)){
-        stop("'header' must be NULL or logical")
+    } else if(!is.logical(header) || length(header) != 1 || is.na(header)){
+        stop("'header' must be NULL, TRUE or FALSE")
     } else{
         is.head <- header
     }
@@ -50,7 +50,7 @@
     ## if nchar <=63 then there is a stats line
     nlines <- length(readLines(con, n=-1))
     ## Read file
-    skip.lines <- ifelse(is.head, 3, 0)
+    skip.lines <- if (is.head) 3 else 0
     ## Do nothing. read.fwf closes (and destroys ?!?) the file connection
     on.exit()
     ## Get chron stats if needed

Modified: pkg/dplR/R/read.tridas.R
===================================================================
--- pkg/dplR/R/read.tridas.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/read.tridas.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -785,9 +785,11 @@
              },
              firstYear = function(x, atts, ...) {
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<- "firstYear"
-                 firstYear.suffix <<- ifelse(is.null(atts),
-                                             as.character(NA),
-                                             atts["suffix"])
+                 firstYear.suffix <<- if (is.null(atts)) {
+                     as.character(NA)
+                 } else {
+                     atts["suffix"]
+                 }
              },
              heartwood = function(x, atts, ...) {
                  grandparent.element <- tag.stack[stack.pointer - 1]
@@ -802,16 +804,20 @@
              },
              identifier = function(x, atts, ...){
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<- "identifier"
-                 domain.text <<- ifelse(is.null(atts),
-                                        as.character(NA),
-                                        atts["domain"])
+                 domain.text <<- if (is.null(atts)) {
+                     as.character(NA)
+                 } else {
+                     atts["domain"]
+                 }
              },
              ## A reference to an identifier in the same document
              idRef = function(x, atts, ...) {
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<- "idRef"
-                 link.idRef <<- ifelse(is.null(atts),
-                                       as.character(NA),
-                                       atts["ref"])
+                 link.idRef <<- if (is.null(atts)) {
+                     as.character(NA)
+                 } else {
+                     atts["ref"]
+                 }
              },
              laboratory = function(...) {
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<- "laboratory"
@@ -835,9 +841,11 @@
              },
              lastYear = function(x, atts, ...) {
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<- "lastYear"
-                 lastYear.suffix <<- ifelse(is.null(atts),
-                                            as.character(NA),
-                                            atts["suffix"])
+                 lastYear.suffix <<- if (is.null(atts)) {
+                     as.character(NA)
+                 } else {
+                     atts["suffix"]
+                 }
              },
              measurementSeries = function(...) {
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<-
@@ -853,9 +861,11 @@
              },
              name = function(x, atts, ...) {
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<- "name"
-                 lab.acronym <<- ifelse(is.null(atts),
-                                        as.character(NA),
-                                        atts["acronym"])
+                 lab.acronym <<- if (is.null(atts)) {
+                     as.character(NA)
+                 } else {
+                     atts["acronym"]
+                 }
              },
              object = function(...) {
                  parent.element <- tag.stack[stack.pointer]
@@ -1039,10 +1049,11 @@
                      }
                  }
                  if (in.derived.values) {
-                     count.vector[idx.value] <<-
-                         ifelse(no.atts,
-                                as.numeric(NA),
-                                as.numeric(atts["count"]))
+                     count.vector[idx.value] <<- if (no.atts) {
+                         as.numeric(NA)
+                     } else {
+                         as.numeric(atts["count"])
+                     }
                  }
              },
              values = function(...) {
@@ -1104,9 +1115,11 @@
              ## A reference URI
              xLink = function(x, atts, ...) {
                  tag.stack[stack.pointer <<- stack.pointer + 1] <<- "xLink"
-                 link.xLink <<- ifelse(is.null(atts),
-                                       as.character(NA),
-                                       atts["href"])
+                 link.xLink <<- if (is.null(atts)) {
+                     as.character(NA)
+                 } else {
+                     atts["href"]
+                 }
              },
              ## Other start tag
              .startElement = function(name, ...) {

Modified: pkg/dplR/R/read.tucson.R
===================================================================
--- pkg/dplR/R/read.tucson.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/read.tucson.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -191,13 +191,13 @@
             cat(gettext("There does not appear to be a header in the rwl file\n",
                         domain="R-dplR"))
         }
-    } else if (!is.logical(header)) {
-        stop("'header' must be NULL or logical")
+    } else if (!is.logical(header) || length(header) != 1 || is.na(header)) {
+        stop("'header' must be NULL, TRUE or FALSE")
     } else {
         is.head <- header
     }
 
-    skip.lines <- ifelse(is.head, 3, 0)
+    skip.lines <- if (is.head) 3 else 0
     data1 <- readLines(tfcon, n=skip.lines + 1)
     if (length(data1) < skip.lines + 1) {
         stop("file has no data")

Modified: pkg/dplR/R/redfit.R
===================================================================
--- pkg/dplR/R/redfit.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/redfit.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -747,7 +747,7 @@
         precat()
         gtxt <- gettext("Input:", domain = "R-dplR")
         precat(gtxt)
-        precat(rep.int("-", nchar(gtxt)))
+        precat(rep.int("-", nchar(gtxt, type = "width")))
         precat("ofac = ", format(ofac, digits = digits))
         precat("hifac = ", format(params[["hifac"]], digits = digits))
         precat("n50 = ", format(n50, digits = digits))
@@ -756,7 +756,7 @@
         precat()
         gtxt <- gettext("Initial values:", domain = "R-dplR")
         precat(gtxt)
-        precat(rep.int("-", nchar(gtxt)))
+        precat(rep.int("-", nchar(gtxt, type = "width")))
         seed <- x[["seed"]]
         if (!is.null(seed)) {
             precat("seed = ", format(seed, digits = digits))
@@ -770,7 +770,7 @@
         precat()
         gtxt <- gettext("Results:", domain = "R-dplR")
         precat(gtxt)
-        precat(rep.int("-", nchar(gtxt)))
+        precat(rep.int("-", nchar(gtxt, type = "width")))
         if (is.null(rhopre) || rhopre < 0) {
             precat(gettextf("Avg. autocorr. coeff., rho = %s",
                             format(x[["rho"]], digits = digits),
@@ -800,7 +800,7 @@
         gtxt <- gettext("Equality of theoretical and data spectrum: Runs test",
                         domain = "R-dplR")
         precat(gtxt)
-        precat(rep.int("-", nchar(gtxt)))
+        precat(rep.int("-", nchar(gtxt, type = "width")))
         rcnt <- x[["rcnt"]]
         if (!is.null(rcnt)) {
             runP <- params[["p"]]
@@ -810,7 +810,7 @@
                                  format(as.numeric(100 * (1 - runP)),
                                         digits = digits),
                                  domain = "R-dplR")
-                nC <- nchar(gtxt[1])
+                nC <- nchar(gtxt[1], type = "width")
                 rcritlo <- x[["rcritlo"]]
                 rcrithi <- x[["rcrithi"]]
             }
@@ -839,7 +839,7 @@
             precat()
             gtxt <- gettext("Data Columns:", domain = "R-dplR")
             precat(gtxt)
-            precat(rep.int("-", nchar(gtxt)))
+            precat(rep.int("-", nchar(gtxt, type = "width")))
             precat(gettext(" 1: Freq = frequency", domain = "R-dplR"))
             precat(gettext(" 2: Gxx = spectrum of input data",
                            domain = "R-dplR"))

Modified: pkg/dplR/R/skel.plot.R
===================================================================
--- pkg/dplR/R/skel.plot.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/skel.plot.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -8,8 +8,9 @@
         sname2 <- as.character(sname)[1]
         if (is.na(sname2)) {
             sname2 <- "NA"
-        } else if (Encoding(sname2) == "bytes" || nchar(sname2) > 7) {
-            stop("'sname' must be a character string less than 8 characters long")
+        } else if (Encoding(sname2) == "bytes" ||
+                   nchar(sname2, type = "width") > 7) {
+            stop("'sname' must be a character string whose width is less than 8")
         }
     }
 
@@ -208,7 +209,12 @@
         grid.lines(x=unit(c(start.mm, start.mm), "mm"),
                    y=unit(c(rh, 0), "mm"),
                    gp = gpar(lwd = 2, lineend = "square", linejoin = "round"))
-        fontsize.sname <- ifelse(nchar(sname2) > 6, 9, 10)
+        fontsize.sname <-
+            if (nchar(sname2, type = "width") > 6) {
+                9
+            } else {
+                10
+            }
         grid.polygon(x = c(start.mm, start.mm, start.mm - 2),
                      y = yy1, default.units = "mm",
                      gp=gpar(fill = "black", lineend = "square",

Modified: pkg/dplR/R/write.compact.R
===================================================================
--- pkg/dplR/R/write.compact.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/write.compact.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -4,7 +4,8 @@
     if (!is.data.frame(rwl.df)) {
         stop("'rwl.df' must be a data.frame")
     }
-    if (!(prec == 0.01 || prec == 0.001)) {
+    if (!is.numeric(prec) || length(prec) != 1 || is.na(prec) ||
+        !(prec == 0.01 || prec == 0.001)) {
         stop("'prec' must equal 0.01 or 0.001")
     }
     if (append && !file.exists(fname)) {
@@ -16,7 +17,7 @@
     yrs.all <- row.names(rwl.df)
 
     line.width <- 80 # max line width
-    prec.rproc <- ifelse(prec == 0.01, 100, 1000) # reciprocal of precision
+    prec.rproc <- if (prec == 0.01) 100 else 1000 # reciprocal of precision
     max.field.width.width <-
         nchar(nchar(round(max(rwl.df, na.rm=TRUE) * prec.rproc)))
     max.n.width <- nchar(nrow(rwl.df)) # conservative
@@ -79,8 +80,8 @@
 
         ## Write header
         head1 <- paste0(nyrs, "=N", " ", min.year, "=I", " ")
-        head2 <- paste0(ifelse(prec == 0.01, -2, -3), "(", n.fields, "F",
-                        field.width, ".0)~")
+        head2 <- paste0(if (prec == 0.01) "-2" else "-3", "(",
+                        n.fields, "F", field.width, ".0)~")
         n.space <- line.width - nchar(head1) - nchar(head2) - nchar(rwl.df.name)
         if (n.space < 1) {
             ## since names are cut to length, this should not happen

Modified: pkg/dplR/R/write.tucson.R
===================================================================
--- pkg/dplR/R/write.tucson.R	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/R/write.tucson.R	2015-09-09 15:14:43 UTC (rev 1001)
@@ -8,7 +8,8 @@
     if (!is.data.frame(rwl.df)) {
         stop("'rwl.df' must be a data.frame")
     }
-    if (!(prec == 0.01 || prec == 0.001)) {
+    if (!is.numeric(prec) || length(prec) != 1 || is.na(prec) ||
+        !(prec == 0.01 || prec == 0.001)) {
         stop("'prec' must equal 0.01 or 0.001")
     }
     header2 <- header
@@ -50,8 +51,11 @@
         long <- header2$long[1]
         lead.invs <- header2$lead.invs[1]
         comp.date <- header2$comp.date[1]
-        lat.long <- ifelse(nchar(long) > 5, paste0(lat, long),
-                           paste(lat, long, sep=" "))
+        lat.long <- if (isTRUE(nchar(long) > 5)) {
+            paste0(lat, long)
+        } else {
+            paste(lat, long, sep=" ")
+        }
         yrs <- paste(header2$first.yr[1], header2$last.yr[1], sep=" ")
 
         field.name <-
@@ -155,9 +159,15 @@
         cat(hdr2, line.term, file=rwl.out, sep="")
         cat(hdr3, line.term, file=rwl.out, sep="")
     }
-    na.str <- ifelse(prec == 0.01, 9.99, -9.999)
-    missing.str <- ifelse(prec == 0.01, -9.99, 0)
-    prec.rproc <- ifelse(prec == 0.01, 100, 1000) # reciprocal of precision
+    if (prec == 0.01) {
+        na.str <- 9.99
+        missing.str <- -9.99
+        prec.rproc <- 100 # reciprocal of precision
+    } else {
+        na.str <- -9.999
+        missing.str <- 0
+        prec.rproc <- 1000
+    }
     format.year <- sprintf("%%%d.0f", year.width)
 
     for (l in seq_len(nseries)) {
@@ -178,13 +188,8 @@
 
         ## 1--name.width
         rwl.df.name <- col.names[l]
-        rwl.df.width <- nchar(rwl.df.name)
         ## Pad to name.width
-        rwl.df.name <- ifelse(rwl.df.width < name.width,
-                              format(rwl.df.name, width=name.width,
-                                     justify="left"),
-                              rwl.df.name)
-
+        rwl.df.name <- str_pad(rwl.df.name, name.width, side = "right")
         for (i in seq_len(n.decades)) {
             ## up to 4 numbers and a minus sign from long series
             dec <- decades[i]

Modified: pkg/dplR/inst/po/fi/LC_MESSAGES/R-dplR.mo
===================================================================
(Binary files differ)

Modified: pkg/dplR/man/skel.plot.Rd
===================================================================
--- pkg/dplR/man/skel.plot.Rd	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/man/skel.plot.Rd	2015-09-09 15:14:43 UTC (rev 1001)
@@ -14,8 +14,9 @@
     series }
   \item{yr.vec}{ optional \code{numeric} vector giving years for the
     tree-ring data }
-  \item{sname}{ an optional \code{character} string of less than 8
-    characters giving the \acronym{ID} for the data }
+  \item{sname}{ an optional \code{character} string giving the
+    \acronym{ID} for the data.  The width of the string, often identical
+    to the number of characters, must be less than 8. }
   \item{filt.weight}{ filter length for the Hanning filter, defaults to 9 }
   \item{dat.out}{ \code{logical} flag indicating whether to return a
     \code{data.frame} containing the data. }

Modified: pkg/dplR/po/R-dplR.pot
===================================================================
--- pkg/dplR/po/R-dplR.pot	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/po/R-dplR.pot	2015-09-09 15:14:43 UTC (rev 1001)
@@ -1,12 +1,12 @@
 # Translation template for messages in dplR R code
 # Copyright (C) dplR copyright holders
 # This file is distributed under the same license as the dplR package.
-# Mikko Korpela <mvkorpel at iki.fi>, 2011, 2012, 2014.
+# Mikko Korpela <mvkorpel at iki.fi>, 2011, 2012, 2014, 2015.
 msgid ""
 msgstr ""
-"Project-Id-Version: dplR 1.6.1\n"
+"Project-Id-Version: dplR 1.6.4\n"
 "Report-Msgid-Bugs-To: mvkorpel at iki.fi\n"
-"POT-Creation-Date: 2014-05-27 12:43+0300\n"
+"POT-Creation-Date: 2015-09-09 17:01+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -266,6 +266,9 @@
 msgid "'series' of length 1 must be a column index to 'rwl'"
 msgstr ""
 
+msgid "unknown element(s): %s"
+msgstr ""
+
 msgid "Detrend series %d of %d"
 msgstr ""
 
@@ -293,6 +296,15 @@
 msgid "'x1' and 'y1' lengths differ"
 msgstr ""
 
+msgid "'x' must be a matrix-like object"
+msgstr ""
+
+msgid "'x' must have at least 2 rows and 2 columns"
+msgstr ""
+
+msgid "'x' must contain numeric data"
+msgstr ""
+
 msgid "use only with \"rwl\" objects"
 msgstr ""
 
@@ -371,7 +383,7 @@
 msgid "There does not appear to be a header in the crn file"
 msgstr ""
 
-msgid "'header' must be NULL or logical"
+msgid "'header' must be NULL, TRUE or FALSE"
 msgstr ""
 
 msgid "file has under 4 lines"
@@ -431,6 +443,9 @@
 msgid "Pith offsets were found (no missing values). See attribute \"po\"."
 msgstr ""
 
+msgid "'rwl' must have non-NA names"
+msgstr ""
+
 msgid "Site-Tree-Core mask must only contain integral values"
 msgstr ""
 
@@ -440,9 +455,6 @@
 msgid "changed tree-core code \"%s\" to \"%s\""
 msgstr ""
 
-msgid "'rwl' must have non-NA names"
-msgstr ""
-
 msgid "series names must be at least 1 character long"
 msgstr ""
 
@@ -839,7 +851,7 @@
 msgid "Detrending Options:"
 msgstr ""
 
-msgid "'sname' must be a character string less than 8 characters long"
+msgid "'sname' must be a character string whose width is less than 8"
 msgstr ""
 
 msgid "input series has length of %d"
@@ -857,6 +869,9 @@
 msgid "empty 'rwl' given, nothing to draw"
 msgstr ""
 
+msgid "reverting to useRaster=FALSE"
+msgstr ""
+
 msgid "'rwl' must have unique, non-NA names"
 msgstr ""
 
@@ -866,6 +881,15 @@
 msgid "'length(rwl)' != 'nrow(ids)'"
 msgstr ""
 
+msgid "'ids' must be a data.frame with column 'tree'"
+msgstr ""
+
+msgid "'ncol(rwl)' != 'nrow(ids)'"
+msgstr ""
+
+msgid "missing tree IDs are not allowed"
+msgstr ""
+
 msgid "a user-coded (pseudo) random number generator is in use"
 msgstr ""
 
@@ -884,9 +908,6 @@
 msgid "'wave.list$period' must be positive"
 msgstr ""
 
-msgid "reverting to useRaster=FALSE"
-msgstr ""
-
 msgid "'rwl.df' must be a data.frame"
 msgstr ""
 

Modified: pkg/dplR/po/R-fi.po
===================================================================
--- pkg/dplR/po/R-fi.po	2015-08-06 10:43:54 UTC (rev 1000)
+++ pkg/dplR/po/R-fi.po	2015-09-09 15:14:43 UTC (rev 1001)
@@ -1,13 +1,13 @@
 # Finnish translations for messages in dplR R code
 # Copyright (C) dplR copyright holders
 # This file is distributed under the same license as the dplR package.
-# Mikko Korpela <mvkorpel at iki.fi>, 2011, 2012, 2014.
+# Mikko Korpela <mvkorpel at iki.fi>, 2011, 2012, 2014, 2015.
 msgid ""
 msgstr ""
-"Project-Id-Version: dplR 1.6.1\n"
+"Project-Id-Version: dplR 1.6.4\n"
 "Report-Msgid-Bugs-To: mvkorpel at iki.fi\n"
-"POT-Creation-Date: 2014-05-27 12:43+0300\n"
-"PO-Revision-Date: 2014-05-27 14:41+0300\n"
+"POT-Creation-Date: 2015-09-09 17:01+0300\n"
+"PO-Revision-Date: 2015-09-09 17:09+0300\n"
 "Last-Translator: Mikko Korpela <mvkorpel at iki.fi>\n"
 "Language-Team: Finnish <mvkorpel at iki.fi>\n"
 "Language: fi\n"
@@ -275,6 +275,9 @@
 msgid "'series' of length 1 must be a column index to 'rwl'"
 msgstr "yhden elementin 'series'-muuttujan täytyy olla sarakeindeksi 'rwl':ään"
 
+msgid "unknown element(s): %s"
+msgstr "tuntematon elementti: %s"
+
 msgid "Detrend series %d of %d"
 msgstr "Trendipuhdistetaan sarja %d / %d"
 
@@ -302,6 +305,15 @@
 msgid "'x1' and 'y1' lengths differ"
 msgstr "’x1’:n ja ’y1’:n pituudet eroavat"
 
+msgid "'x' must be a matrix-like object"
+msgstr "’x’:n täytyy olla matriisin kaltainen"
+
+msgid "'x' must have at least 2 rows and 2 columns"
+msgstr "’x’:ssä pitää olla vähintään 2 riviä ja saraketta"
+
+msgid "'x' must contain numeric data"
+msgstr "’x’:n täytyy sisältää numeerisia arvoja"
+
 msgid "use only with \"rwl\" objects"
 msgstr "käytä vain \"rwl\"-objektien kanssa"
 
@@ -382,8 +394,8 @@
 msgid "There does not appear to be a header in the crn file"
 msgstr "Tiedostossa ei näytä olevan otsaketta"
 
-msgid "'header' must be NULL or logical"
-msgstr "’header’in täytyy olla NULL tai logical-tyyppiä"
+msgid "'header' must be NULL, TRUE or FALSE"
+msgstr "’header’in täytyy olla NULL, TRUE tai FALSE"
 
 msgid "file has under 4 lines"
 msgstr "tiedostossa on alle 4 riviä"
@@ -447,6 +459,9 @@
 "Sarjojen alusta puuttuvien renkaiden määrät löydettiin. Katso attribuutti "
 "\"po\"."
 
+msgid "'rwl' must have non-NA names"
+msgstr "’rwl’:ssä pitää olla ei-NA-nimet"
+
 msgid "Site-Tree-Core mask must only contain integral values"
 msgstr "Paikka–Puu–Näyte‐maskissa täytyy olla pelkkiä kokonaislukuja"
 
@@ -456,9 +471,6 @@
 msgid "changed tree-core code \"%s\" to \"%s\""
 msgstr "vaihdettiin puu–näyte‐koodi ”%s” koodiksi ”%s”"
 
-msgid "'rwl' must have non-NA names"
-msgstr "’rwl’:ssä pitää olla ei-NA-nimet"
-
 msgid "series names must be at least 1 character long"
 msgstr "sarjojen nimien täytyy olla vähintään 1 merkin mittaisia"
 
@@ -872,8 +884,8 @@
 msgid "Detrending Options:"
 msgstr "Trendinpuhdistusvaihtoehdot:"
 
-msgid "'sname' must be a character string less than 8 characters long"
-msgstr "’sname’n täytyy olla alle 8-merkkinen merkkijono"
+msgid "'sname' must be a character string whose width is less than 8"
+msgstr "’sname’n täytyy olla merkkijono jonka leveys on alle 8"
 
 msgid "input series has length of %d"
 msgstr "syötesarjan pituus on %d"
@@ -890,6 +902,9 @@
 msgid "empty 'rwl' given, nothing to draw"
 msgstr "tyhjä ’rwl’ annettu, ei mitään piirrettävää"
 
+msgid "reverting to useRaster=FALSE"
+msgstr "palataan asetukseen useRaster=FALSE"
+
 msgid "'rwl' must have unique, non-NA names"
 msgstr "’rwl’:ssä pitää olla uniikit, ei-NA-nimet"
 
@@ -899,6 +914,15 @@
 msgid "'length(rwl)' != 'nrow(ids)'"
 msgstr "’length(rwl)’ ≠ ’nrow(ids)’"
 
+msgid "'ids' must be a data.frame with column 'tree'"
+msgstr "’ids’:n täytyy olla data.frame jossa on sarake ’tree’"
+
+msgid "'ncol(rwl)' != 'nrow(ids)'"
+msgstr "’ncol(rwl)’ ≠ ’nrow(ids)’"
+
+msgid "missing tree IDs are not allowed"
+msgstr "puuttuvia puutunnisteita ei sallita"
+
 msgid "a user-coded (pseudo) random number generator is in use"
 msgstr "käyttäjän tekemä (pseudo)satunnaislukugeneraattori on käytössä"
 
@@ -917,9 +941,6 @@
 msgid "'wave.list$period' must be positive"
 msgstr "’wave.list$period’in täytyy olla positiivinen"
 
-msgid "reverting to useRaster=FALSE"
-msgstr "palataan asetukseen useRaster=FALSE"
-
 msgid "'rwl.df' must be a data.frame"
 msgstr "’rwl.df’:n täytyy olla data.frame"
 



More information about the Dplr-commits mailing list