Running examples in ‘Ecfun-Ex.R’ failed
The error most likely occurred in:

> ### Name: asNumericDF
> ### Title: Coerce to numeric dropping commas and info after a blank
> ### Aliases: asNumericChar asNumericDF
> ### Keywords: manip
> 
> ### ** Examples
> 
> ##
> ## 1.  an example 
> ##
> (xDate <- as.Date('1970-01-01')+c(0, 365))
[1] "1970-01-01" "1971-01-01"
> (xPOSIX <- as.POSIXct(xDate)+c(1, 99))
[1] "1970-01-01 00:00:01 UTC" "1971-01-01 00:01:39 UTC"
> xMSdate <- as.Date(1, 
+     as.Date('1899-12-31'))+1:2
> (fakeF1 <- data.frame(yr=c('1948', 
+             '1947 (1)'),
+       q1=c(' 1,234 ', ''), duh=rep(NA, 2), 
+       dol=c('$1,234', ''), 
+       pct=c('1%', '2%'), 
+       xDate=format(xDate, '%Y-%m-%d'), 
+       xPOSIX=format(xPOSIX, '%Y-%m-%d %H:%M:%S'), 
+       xMSdate=2:3, junk=c('this is',
+           'junk')))
        yr      q1 duh    dol pct      xDate              xPOSIX xMSdate
1     1948  1,234   NA $1,234  1% 1970-01-01 1970-01-01 00:00:01       2
2 1947 (1)          NA         2% 1971-01-01 1971-01-01 00:01:39       3
     junk
1 this is
2    junk
>             
> # This converts the last 3 columns to NAs and drops them:
> 
> str(nF1.1 <- asNumericChar(fakeF1$yr))
 num [1:2] 1948 1947
> str(nF1.2 <- asNumericChar(fakeF1$q1))
 num [1:2] 1234 NA
> str(nF1.3 <- asNumericChar(fakeF1$duh))
 logi [1:2] NA NA
> (nF1.4 <- asNumericChar('1969-12-31 18:00:01',
+                         class.='POSIXct'))
[1] "1969-12-31 06:00:01 UTC"
> 
> (nF1 <- asNumericDF(fakeF1))
Warning in asNumericDF(fakeF1) :
  NAs introduced by coercion in asNumericChar(q1[2])
Warning in asNumericDF(fakeF1) :
  NAs introduced by coercion in asNumericChar(dol[2])
Warning in asNumericDF(fakeF1) :
  NAs introduced by coercion in asNumericChar(xDate[c(1, 2)])
Warning in asNumericDF(fakeF1) :
  NAs introduced by coercion in asNumericChar(xPOSIX[c(1, 2)])
Warning in asNumericDF(fakeF1) :
  NAs introduced by coercion in asNumericChar(junk[c(1, 2)])
    yr   q1  dol  pct xMSdate
1 1948 1234 1234 0.01       2
2 1947   NA   NA 0.02       3
> (nF2 <- asNumericDF(fakeF1, Dates=6, 
+     MSdate='xMSdate', 
+     ignore=c('junk', 'xPOSIX'), 
+     format.='%Y-%m-%d'))
Warning in asNumericDF(fakeF1, Dates = 6, MSdate = "xMSdate", ignore = c("junk",  :
  NAs introduced by coercion in asNumericChar(q1[2])
Warning in asNumericDF(fakeF1, Dates = 6, MSdate = "xMSdate", ignore = c("junk",  :
  NAs introduced by coercion in asNumericChar(dol[2])
    yr   q1  dol  pct      xDate              xPOSIX    xMSdate    junk
1 1948 1234 1234 0.01 1970-01-01 1970-01-01 00:00:01 1900-01-02 this is
2 1947   NA   NA 0.02 1971-01-01 1971-01-01 00:01:39 1900-01-03    junk
> # check 
> nF1. <- data.frame(yr=
+         asNumericChar(fakeF1$yr),
+       q1=asNumericChar(fakeF1$q1), 
+       dol=asNumericChar(fakeF1$dol), 
+       pct=c(.01, .02), xMSdate=2:3)
> 
> nF1c <- data.frame(yr=1948:1947, 
+       q1=c(1234, NA), dol=c(1234, NA), 
+       pct=c(.01, .02), xMSdate=2:3)
> 
> ## Don't show: 
> stopifnot(
+ ## End(Don't show)
+ all.equal(nF1, nF1.)
+ ## Don't show: 
+ )
> ## End(Don't show)
> ## Don't show: 
> stopifnot(
+ ## End(Don't show)
+ all.equal(nF1., nF1c)
+ ## Don't show: 
+ )
> ## End(Don't show)
> 
> ## 
> ## 2.  as.Date default example
> ##
>   xD <- asNumericChar(
+     as.character(xDate), class.='Date')
> ## Don't show: 
> stopifnot(
+ ## End(Don't show)
+   all.equal(xDate, xD)
+ ## Don't show: 
+ )
> ## End(Don't show)
> 
> ##
> ## 3.  as.POSIXct default example 
> ##
> xPOSIX
[1] "1970-01-01 00:00:01 UTC" "1971-01-01 00:01:39 UTC"
> (xPOSIXch <- as.character(xPOSIX))
[1] "1970-01-01 00:00:01" "1971-01-01 00:01:39"
> (xP <- asNumericChar(xPOSIXch, class.='POSIXct'))
[1] "1969-12-31 12:00:01 UTC" "1970-12-31 12:01:39 UTC"
> attr(xPOSIX, 'tzone')
[1] "UTC"
> attr(xP, 'tzone')
[1] "UTC"
> # R-Devel after 4.2.1 breaks earlier code; fix
> if(is.null(attr(xPOSIX, 'tzone')))
+     attr(xPOSIX, 'tzone') <- attr(xP, 'tzone')
> (dP <- difftime(xPOSIX, xP, units='secs'))
Time differences in secs
[1] 43200 43200
> (madP <- max(abs(as.numeric(dP))))
[1] 43200
> ## Don't show: 
> stopifnot(
+ ## End(Don't show)
+ {
+ #all.equal(xPOSIX, xP)
+ # As of 2022-10-06 I don't know how to write code
+ # that will get a consistent answer with 
+ # different version R-devel with differences
+ # less than an hour
+ if(madP>(6*60*60)){
+   madPmsg <- paste('Discrepancy betw fn and manual comp ', 
+        'too large; is ', madP, 'seconds')
+   stop(madPmsg)
+ }
+ TRUE
+ }
+ ## Don't show: 
+ )
Error in stopifnot({ : 
  Discrepancy betw fn and manual comp  too large; is  43200 seconds
Execution halted