upscheme/femtolisp/ast/rpasses-out.lsp

1702 lines
51 KiB
Plaintext
Raw Normal View History

'(r-expressions (<- Sys.time (lambda ()
(let () (r-block (r-call structure (r-call
.Internal (r-call
Sys.time))
(*named* class (r-call
c "POSIXt" "POSIXct")))))))
(<- Sys.timezone (lambda ()
(let ()
(r-block (r-call as.vector (r-call
Sys.getenv
"TZ"))))))
(<- as.POSIXlt (lambda (x tz)
(let ((x ())
(tzone ())
(fromchar ())
(tz ()))
(r-block (when (missing tz)
(<- tz ""))
(<- fromchar (lambda (x)
(let ((res ())
(f ())
(j ())
(xx ()))
(r-block (<-
xx (r-call r-index x 1))
(if (r-call is.na xx) (r-block (<- j 1)
(while (&& (r-call is.na xx)
(r-call <= (<- j (r-call + j 1))
(r-call length x)))
(<- xx (r-call r-index x j)))
(if (r-call is.na xx)
(<- f "%Y-%m-%d"))))
(if (|\|\|| (r-call is.na xx) (r-call ! (r-call is.na (r-call strptime xx
(<- f "%Y-%m-%d %H:%M:%OS"))))
(r-call ! (r-call is.na (r-call strptime xx
(<- f "%Y/%m/%d %H:%M:%OS"))))
(r-call ! (r-call is.na (r-call strptime xx
(<- f "%Y-%m-%d %H:%M"))))
(r-call ! (r-call is.na (r-call strptime xx
(<- f "%Y/%m/%d %H:%M"))))
(r-call ! (r-call is.na (r-call strptime xx
(<- f "%Y-%m-%d"))))
(r-call ! (r-call is.na (r-call strptime xx
(<- f "%Y/%m/%d")))))
(r-block (<- res (r-call strptime x f))
(if (r-call nchar tz) (r-block (<- res (r-call attr<- res "tzone"
tz))
tz))
(return res)))
(r-call stop "character string is not in a standard unambiguous format")))))
(if (r-call inherits x "POSIXlt")
(return x))
(if (r-call inherits x "Date")
(return (r-call .Internal (r-call
Date2POSIXlt x))))
(<- tzone (r-call attr x "tzone"))
(if (|\|\|| (r-call inherits x "date")
(r-call inherits x "dates"))
(<- x (r-call as.POSIXct x)))
(if (r-call is.character x)
(return (r-call fromchar (r-call
unclass x))))
(if (r-call is.factor x)
(return (r-call fromchar (r-call
as.character x))))
(if (&& (r-call is.logical x)
(r-call all (r-call is.na
x)))
(<- x (r-call
as.POSIXct.default x)))
(if (r-call ! (r-call inherits x
"POSIXct"))
(r-call stop (r-call gettextf
"do not know how to convert '%s' to class \"POSIXlt\""
(r-call deparse (substitute x)))))
(if (&& (missing tz)
(r-call ! (r-call is.null
tzone)))
(<- tz (r-call r-index tzone
1)))
(r-call .Internal (r-call
as.POSIXlt x
tz))))))
(<- as.POSIXct (lambda (x tz)
(let ((tz ()))
(r-block (when (missing tz)
(<- tz ""))
(r-call UseMethod "as.POSIXct")))))
(<- as.POSIXct.Date (lambda (x ...)
(let ()
(r-block (r-call structure (r-call *
(r-call unclass x) 86400)
(*named* class (r-call
c "POSIXt" "POSIXct")))))))
(<- as.POSIXct.date (lambda (x ...)
(let ((x ()))
(r-block (if (r-call inherits x "date")
(r-block (<- x (r-call
* (r-call - x 3653) 86400))
(return (r-call
structure x (*named* class (r-call c "POSIXt" "POSIXct")))))
(r-call stop (r-call
gettextf "'%s' is not a \"date\" object"
(r-call deparse (substitute x)))))))))
(<- as.POSIXct.dates (lambda (x ...)
(let ((x ())
(z ()))
(r-block (if (r-call inherits x "dates")
(r-block (<- z (r-call
attr x "origin"))
(<- x (r-call
* (r-call as.numeric x) 86400))
(if (&& (r-call
== (r-call length z) 3)
(r-call is.numeric z))
(<- x (r-call + x
(r-call as.numeric (r-call ISOdate (r-call r-index z 3)
(r-call r-index z 1)
(r-call r-index z 2) 0)))))
(return (r-call
structure x (*named* class (r-call c "POSIXt" "POSIXct")))))
(r-call stop (r-call
gettextf "'%s' is not a \"dates\" object"
(r-call deparse (substitute x)))))))))
(<- as.POSIXct.POSIXlt (lambda (x tz)
(let ((tzone ())
(tz ()))
(r-block (when (missing tz)
(<- tz ""))
(<- tzone (r-call attr x
"tzone"))
(if (&& (missing tz)
(r-call ! (r-call
is.null tzone)))
(<- tz (r-call
r-index tzone
1)))
(r-call structure (r-call
.Internal (r-call as.POSIXct x tz))
(*named* class (r-call
c "POSIXt" "POSIXct"))
(*named* tzone tz))))))
(<- as.POSIXct.default (lambda (x tz)
(let ((tz ()))
(r-block (when (missing tz)
(<- tz ""))
(if (r-call inherits x "POSIXct")
(return x))
(if (|\|\|| (r-call
is.character
x)
(r-call
is.factor x))
(return (r-call
as.POSIXct
(r-call
as.POSIXlt
x)
tz)))
(if (&& (r-call
is.logical x)
(r-call all (r-call
is.na x)))
(return (r-call
structure (r-call
as.numeric x)
(*named*
class (r-call
c "POSIXt" "POSIXct")))))
(r-call stop (r-call
gettextf "do not know how to convert '%s' to class \"POSIXlt\""
(r-call
deparse (substitute x))))))))
(<- as.numeric.POSIXlt (lambda (x)
(let ()
(r-block (r-call as.POSIXct x)))))
(<- format.POSIXlt (lambda (x format usetz ...)
(let ((np ())
(secs ())
(times ())
(usetz ())
(format ()))
(r-block (when (missing format)
(<- format ""))
(when (missing usetz)
(<- usetz *r-false*))
(if (r-call ! (r-call
inherits x "POSIXlt"))
(r-call stop "wrong class"))
(if (r-call == format "")
(r-block (<- times (r-call
unlist (r-call r-index (r-call unclass x)
(r-call : 1 3))))
(<- secs (r-call
r-aref x (index-in-strlist sec (r-call attr x #0="names"))))
(<- secs (r-call
r-index secs (r-call ! (r-call is.na secs))))
(<- np (r-call
getOption "digits.secs"))
(if (r-call
is.null np)
(<- np 0)
(<- np (r-call
min 6 np)))
(if (r-call >=
np 1)
(r-block (for
i (r-call - (r-call : 1 np) 1)
(if (r-call all (r-call < (r-call abs (r-call - secs
(r-call round secs i)))
9.9999999999999995e-07))
(r-block (<- np i) (break))))))
(<- format (if
(r-call all (r-call == (r-call r-index times
(r-call ! (r-call is.na times)))
0))
"%Y-%m-%d" (if (r-call == np 0) "%Y-%m-%d %H:%M:%S"
(r-call paste "%Y-%m-%d %H:%M:%OS" np
(*named* sep "")))))))
(r-call .Internal (r-call
format.POSIXlt x format usetz))))))
(<- strftime format.POSIXlt)
(<- strptime (lambda (x format tz)
(let ((tz ()))
(r-block (when (missing tz)
(<- tz ""))
(r-call .Internal (r-call strptime
(r-call as.character x) format tz))))))
(<- format.POSIXct (lambda (x format tz usetz ...)
(let ((tzone ())
(usetz ())
(tz ())
(format ()))
(r-block (when (missing format)
(<- format ""))
(when (missing tz)
(<- tz ""))
(when (missing usetz)
(<- usetz *r-false*))
(if (r-call ! (r-call
inherits x "POSIXct"))
(r-call stop "wrong class"))
(if (&& (missing tz)
(r-call ! (r-call
is.null (<- tzone (r-call attr x "tzone")))))
(<- tz tzone))
(r-call structure (r-call
format.POSIXlt (r-call as.POSIXlt x tz) format usetz r-dotdotdot)
(*named* names (r-call
names x)))))))
(<- print.POSIXct (lambda (x ...)
(let ()
(r-block (r-call print (r-call format
x (*named* usetz *r-true*) r-dotdotdot)
r-dotdotdot)
(r-call invisible x)))))
(<- print.POSIXlt (lambda (x ...)
(let ()
(r-block (r-call print (r-call format
x (*named* usetz *r-true*))
r-dotdotdot)
(r-call invisible x)))))
(<- summary.POSIXct (lambda (object digits ...)
(let ((x ())
(digits ()))
(r-block (when (missing digits)
(<- digits 15))
(<- x (r-call r-index (r-call
summary.default (r-call unclass object)
(*named* digits digits) r-dotdotdot)
(r-call : 1 6)))
(r-block (ref= %r:1 (r-call
oldClass object))
(<- x (r-call
class<- x
%r:1))
%r:1)
(r-block (ref= %r:2 (r-call
attr object "tzone"))
(<- x (r-call
attr<- x "tzone"
%r:2))
%r:2)
x))))
(<- summary.POSIXlt (lambda (object digits ...)
(let ((digits ()))
(r-block (when (missing digits)
(<- digits 15))
(r-call summary (r-call
as.POSIXct
object)
(*named* digits
digits)
r-dotdotdot)))))
(<- "+.POSIXt" (lambda (e1 e2)
(let ((e2 ())
(e1 ())
(coerceTimeUnit ()))
(r-block (<- coerceTimeUnit (lambda (x)
(let ()
(r-block (switch (r-call attr x "units")
(*named* secs x) (*named* mins (r-call * 60 x))
(*named* hours (r-call * (r-call * 60 60) x))
(*named* days (r-call * (r-call * (r-call * 60 60) 24) x))
(*named* weeks (r-call * (r-call * (r-call * (r-call * 60 60)
24)
7)
x)))))))
(if (r-call == (r-call nargs) 1)
(return e1))
(if (&& (r-call inherits e1 "POSIXt")
(r-call inherits e2 "POSIXt"))
(r-call stop "binary + is not defined for \"POSIXt\" objects"))
(if (r-call inherits e1 "POSIXlt")
(<- e1 (r-call as.POSIXct e1)))
(if (r-call inherits e2 "POSIXlt")
(<- e2 (r-call as.POSIXct e2)))
(if (r-call inherits e1 "difftime")
(<- e1 (r-call coerceTimeUnit
e1)))
(if (r-call inherits e2 "difftime")
(<- e2 (r-call coerceTimeUnit
e2)))
(r-call structure (r-call + (r-call
unclass e1)
(r-call unclass e2))
(*named* class (r-call c
"POSIXt" "POSIXct"))
(*named* tzone (r-call
check_tzones e1 e2)))))))
(<- "-.POSIXt" (lambda (e1 e2)
(let ((e2 ())
(coerceTimeUnit ()))
(r-block (<- coerceTimeUnit (lambda (x)
(let ()
(r-block (switch (r-call attr x "units")
(*named* secs x) (*named* mins (r-call * 60 x))
(*named* hours (r-call * (r-call * 60 60) x))
(*named* days (r-call * (r-call * (r-call * 60 60) 24) x))
(*named* weeks (r-call * (r-call * (r-call * (r-call * 60 60)
24)
7)
x)))))))
(if (r-call ! (r-call inherits e1
"POSIXt"))
(r-call stop "Can only subtract from POSIXt objects"))
(if (r-call == (r-call nargs) 1)
(r-call stop "unary - is not defined for \"POSIXt\" objects"))
(if (r-call inherits e2 "POSIXt")
(return (r-call difftime e1
e2)))
(if (r-call inherits e2 "difftime")
(<- e2 (r-call unclass (r-call
coerceTimeUnit e2))))
(if (r-call ! (r-call is.null (r-call
attr e2 "class")))
(r-call stop "can only subtract numbers from POSIXt objects"))
(r-call structure (r-call - (r-call
unclass (r-call as.POSIXct e1))
e2)
(*named* class (r-call c
"POSIXt" "POSIXct")))))))
(<- Ops.POSIXt (lambda (e1 e2)
(let ((e2 ())
(e1 ())
(boolean ()))
(r-block (if (r-call == (r-call nargs) 1)
(r-call stop "unary" .Generic
" not defined for \"POSIXt\" objects"))
(<- boolean (switch .Generic (*named*
< *r-missing*)
(*named* >
*r-missing*)
(*named* ==
*r-missing*)
(*named* !=
*r-missing*)
(*named* <=
*r-missing*)
(*named* >=
*r-true*)
*r-false*))
(if (r-call ! boolean)
(r-call stop .Generic
" not defined for \"POSIXt\" objects"))
(if (|\|\|| (r-call inherits e1
"POSIXlt")
(r-call is.character
e1))
(<- e1 (r-call as.POSIXct e1)))
(if (|\|\|| (r-call inherits e2
"POSIXlt")
(r-call is.character
e1))
(<- e2 (r-call as.POSIXct e2)))
(r-call check_tzones e1 e2)
(r-call NextMethod .Generic)))))
(<- Math.POSIXt (lambda (x ...)
(let () (r-block (r-call stop .Generic
" not defined for POSIXt objects")))))
(<- check_tzones (lambda (...)
(let ((tzs ()))
(r-block (<- tzs (r-call unique (r-call
sapply (r-call list r-dotdotdot) (lambda (x)
(let ((y ()))
(r-block (<- y (r-call attr x "tzone"))
(if (r-call is.null y) "" y)))))))
(<- tzs (r-call r-index tzs
(r-call != tzs
"")))
(if (r-call > (r-call length
tzs)
1)
(r-call warning "'tzone' attributes are inconsistent"))
(if (r-call length tzs)
(r-call r-index tzs 1)
())))))
(<- Summary.POSIXct (lambda (... na.rm)
(let ((val ())
(tz ())
(args ())
(ok ()))
(r-block (<- ok (switch .Generic (*named*
max *r-missing*)
(*named* min
*r-missing*)
(*named*
range
*r-true*)
*r-false*))
(if (r-call ! ok)
(r-call stop .Generic
" not defined for \"POSIXct\" objects"))
(<- args (r-call list
r-dotdotdot))
(<- tz (r-call do.call "check_tzones"
args))
(<- val (r-call NextMethod
.Generic))
(r-block (ref= %r:3 (r-call
oldClass (r-call r-aref args 1)))
(<- val (r-call
class<- val %r:3))
%r:3)
(r-block (<- val (r-call
attr<- val "tzone" tz))
tz)
val))))
(<- Summary.POSIXlt (lambda (... na.rm)
(let ((val ())
(tz ())
(args ())
(ok ()))
(r-block (<- ok (switch .Generic (*named*
max *r-missing*)
(*named* min
*r-missing*)
(*named*
range
*r-true*)
*r-false*))
(if (r-call ! ok)
(r-call stop .Generic
" not defined for \"POSIXlt\" objects"))
(<- args (r-call list
r-dotdotdot))
(<- tz (r-call do.call "check_tzones"
args))
(<- args (r-call lapply args
as.POSIXct))
(<- val (r-call do.call
.Generic (r-call
c args (*named* na.rm na.rm))))
(r-call as.POSIXlt (r-call
structure val (*named* class (r-call c "POSIXt" "POSIXct"))
(*named* tzone tz)))))))
(<- "[.POSIXct" (lambda (x ... drop)
(let ((val ())
(x ())
(cl ())
(drop ()))
(r-block (when (missing drop)
(<- drop *r-true*))
(<- cl (r-call oldClass x))
(r-block (<- x (r-call class<-
x ()))
())
(<- val (r-call NextMethod "["))
(r-block (<- val (r-call class<-
val cl))
cl)
(r-block (ref= %r:4 (r-call attr
x "tzone"))
(<- val (r-call attr<-
val "tzone" %r:4))
%r:4)
val))))
(<- "[[.POSIXct" (lambda (x ... drop)
(let ((val ())
(x ())
(cl ())
(drop ()))
(r-block (when (missing drop)
(<- drop *r-true*))
(<- cl (r-call oldClass x))
(r-block (<- x (r-call class<-
x ()))
())
(<- val (r-call NextMethod "[["))
(r-block (<- val (r-call
class<- val
cl))
cl)
(r-block (ref= %r:5 (r-call
attr x "tzone"))
(<- val (r-call attr<-
val "tzone" %r:5))
%r:5)
val))))
(<- "[<-.POSIXct" (lambda (x ... value)
(let ((x ())
(tz ())
(cl ())
(value ()))
(r-block (if (r-call ! (r-call
as.logical (r-call
length value)))
(return x))
(<- value (r-call as.POSIXct
value))
(<- cl (r-call oldClass x))
(<- tz (r-call attr x "tzone"))
(r-block (ref= %r:6 (r-block
(<- value (r-call class<- value
()))
()))
(<- x (r-call class<-
x %r:6))
%r:6)
(<- x (r-call NextMethod
.Generic))
(r-block (<- x (r-call class<-
x cl))
cl)
(r-block (<- x (r-call attr<-
x "tzone" tz))
tz)
x))))
(<- as.character.POSIXt (lambda (x ...)
(let ()
(r-block (r-call format x
r-dotdotdot)))))
(<- as.data.frame.POSIXct as.data.frame.vector)
(<- is.na.POSIXlt (lambda (x)
(let ()
(r-block (r-call is.na (r-call
as.POSIXct x))))))
(<- c.POSIXct (lambda (... recursive)
(let ((recursive ()))
(r-block (when (missing recursive)
(<- recursive *r-false*))
(r-call structure (r-call c (r-call
unlist (r-call lapply (r-call list r-dotdotdot) unclass)))
(*named* class (r-call c
"POSIXt" "POSIXct")))))))
(<- c.POSIXlt (lambda (... recursive)
(let ((recursive ()))
(r-block (when (missing recursive)
(<- recursive *r-false*))
(r-call as.POSIXlt (r-call do.call
"c" (r-call lapply (r-call list r-dotdotdot) as.POSIXct)))))))
(<- all.equal.POSIXct (lambda (target current ... scale)
(let ((scale ()))
(r-block (when (missing scale)
(<- scale 1))
(r-call check_tzones
target current)
(r-call NextMethod "all.equal")))))
(<- ISOdatetime (lambda (year month day hour min sec tz)
(let ((x ())
(tz ()))
(r-block (when (missing tz)
(<- tz ""))
(<- x (r-call paste year month
day hour min sec
(*named* sep "-")))
(r-call as.POSIXct (r-call
strptime x
"%Y-%m-%d-%H-%M-%OS"
(*named* tz
tz))
(*named* tz tz))))))
(<- ISOdate (lambda (year month day hour min sec tz)
(let ((tz ())
(sec ())
(min ())
(hour ()))
(r-block (when (missing hour)
(<- hour 12))
(when (missing min)
(<- min 0))
(when (missing sec)
(<- sec 0))
(when (missing tz)
(<- tz "GMT"))
(r-call ISOdatetime year month day
hour min sec tz)))))
(<- as.matrix.POSIXlt (lambda (x ...)
(let ()
(r-block (r-call as.matrix (r-call
as.data.frame (r-call unclass x))
r-dotdotdot)))))
(<- mean.POSIXct (lambda (x ...)
(let ()
(r-block (r-call structure (r-call mean
(r-call unclass x) r-dotdotdot)
(*named* class (r-call
c "POSIXt" "POSIXct"))
(*named* tzone (r-call
attr x "tzone")))))))
(<- mean.POSIXlt (lambda (x ...)
(let ()
(r-block (r-call as.POSIXlt (r-call mean
(r-call as.POSIXct x) r-dotdotdot))))))
(<- difftime (lambda (time1 time2 tz units)
(let ((zz ())
(z ())
(time2 ())
(time1 ())
(units ())
(tz ()))
(r-block (when (missing tz)
(<- tz ""))
(when (missing units)
(<- units (r-call c "auto" "secs"
"mins" "hours"
"days" "weeks")))
(<- time1 (r-call as.POSIXct time1
(*named* tz tz)))
(<- time2 (r-call as.POSIXct time2
(*named* tz tz)))
(<- z (r-call - (r-call unclass
time1)
(r-call unclass time2)))
(<- units (r-call match.arg units))
(if (r-call == units "auto")
(r-block (if (r-call all (r-call
is.na z))
(<- units "secs")
(r-block (<- zz (r-call
min (r-call abs z) (*named* na.rm *r-true*)))
(if (|\|\|| (r-call is.na zz) (r-call < zz 60))
(<- units "secs") (if (r-call < zz 3600)
(<- units "mins")
(if (r-call < zz 86400)
(<- units "hours")
(<- units "days"))))))))
(switch units (*named* secs (r-call
structure z (*named* units "secs")
(*named* class "difftime")))
(*named* mins (r-call
structure (r-call
/ z 60)
(*named*
units "mins")
(*named*
class "difftime")))
(*named* hours (r-call
structure
(r-call /
z 3600)
(*named*
units "hours")
(*named*
class "difftime")))
(*named* days (r-call
structure (r-call
/ z 86400)
(*named*
units "days")
(*named*
class "difftime")))
(*named* weeks (r-call
structure
(r-call /
z (r-call * 7 86400))
(*named*
units "weeks")
(*named*
class "difftime"))))))))
(<- as.difftime (lambda (tim format units)
(let ((units ())
(format ()))
(r-block (when (missing format)
(<- format "%X"))
(when (missing units)
(<- units "auto"))
(if (r-call inherits tim "difftime")
(return tim))
(if (r-call is.character tim)
(r-block (r-call difftime (r-call
strptime tim (*named* format format))
(r-call
strptime "0:0:0" (*named* format "%X"))
(*named*
units units)))
(r-block (if (r-call ! (r-call
is.numeric tim))
(r-call stop "'tim' is not character or numeric"))
(if (r-call ==
units "auto")
(r-call stop "need explicit units for numeric conversion"))
(if (r-call ! (r-call
%in% units (r-call c "secs" "mins" "hours" "days" "weeks")))
(r-call stop "invalid units specified"))
(r-call structure
tim (*named*
units units)
(*named*
class "difftime"))))))))
(<- units (lambda (x)
(let () (r-block (r-call UseMethod "units")))))
(<- "units<-" (lambda (x value)
(let () (r-block (r-call UseMethod "units<-")))))
(<- units.difftime (lambda (x)
(let ()
(r-block (r-call attr x "units")))))
(<- "units<-.difftime" (lambda (x value)
(let ((newx ())
(sc ())
(from ()))
(r-block (<- from (r-call units x))
(if (r-call == from value)
(return x))
(if (r-call ! (r-call
%in% value (r-call c "secs" "mins" "hours" "days" "weeks")))
(r-call stop "invalid units specified"))
(<- sc (r-call cumprod (r-call
c (*named* secs 1) (*named* mins 60)
(*named* hours 60) (*named* days 24) (*named* weeks 7))))
(<- newx (r-call / (r-call
* (r-call as.vector x) (r-call r-index sc from))
(r-call r-index sc value)))
(r-call structure newx
(*named* units
value)
(*named* class "difftime"))))))
(<- as.double.difftime (lambda (x units ...)
(let ((x ())
(units ()))
(r-block (when (missing units)
(<- units "auto"))
(if (r-call != units "auto")
(r-block (<- x (r-call
units<- x units))
units))
(r-call as.double (r-call
as.vector x))))))
(<- as.data.frame.difftime
as.data.frame.vector)
(<- format.difftime (lambda (x ...)
(let ()
(r-block (r-call paste (r-call format
(r-call unclass x) r-dotdotdot)
(r-call units x))))))
(<- print.difftime (lambda (x digits ...)
(let ((y ())
(digits ()))
(r-block (when (missing digits)
(<- digits (r-call
getOption
"digits")))
(if (|\|\|| (r-call is.array
x)
(r-call > (r-call
length x)
1))
(r-block (r-call cat "Time differences in "
(r-call attr x "units") "\n" (*named* sep ""))
(<- y (r-call
unclass x))
(r-block (<- y
(r-call attr<- y "units"
()))
())
(r-call print y))
(r-call cat "Time difference of "
(r-call format (r-call
unclass x)
(*named* digits digits))
" " (r-call attr
x "units")
"\n" (*named* sep
"")))
(r-call invisible x)))))
(<- round.difftime (lambda (x digits ...)
(let ((units ())
(digits ()))
(r-block (when (missing digits)
(<- digits 0))
(<- units (r-call attr x "units"))
(r-call structure (r-call
NextMethod)
(*named* units units)
(*named* class "difftime"))))))
(<- "[.difftime" (lambda (x ... drop)
(let ((val ())
(x ())
(cl ())
(drop ()))
(r-block (when (missing drop)
(<- drop *r-true*))
(<- cl (r-call oldClass x))
(r-block (<- x (r-call class<-
x ()))
())
(<- val (r-call NextMethod "["))
(r-block (<- val (r-call
class<- val
cl))
cl)
(r-block (ref= %r:7 (r-call
attr x "units"))
(<- val (r-call attr<-
val "units" %r:7))
%r:7)
val))))
(<- Ops.difftime (lambda (e1 e2)
(let ((u1 ())
(e2 ())
(boolean ())
(e1 ())
(coerceTimeUnit ()))
(r-block (<- coerceTimeUnit (lambda (x)
(let () (r-block (switch (r-call attr x "units")
(*named* secs x)
(*named* mins (r-call * 60 x))
(*named* hours (r-call * (r-call * 60 60) x))
(*named* days (r-call * (r-call * (r-call * 60 60)
24)
x))
(*named* weeks (r-call * (r-call * (r-call * (r-call
* 60 60)
24)
7)
x)))))))
(if (r-call == (r-call nargs)
1)
(r-block (switch .Generic
(*named* + (r-block)) (*named* - (r-block (r-block (ref= %r:8 (r-call - (r-call
unclass e1)))
(<- e1 (r-call r-index<-
e1
*r-missing*
%r:8))
%r:8)))
(r-call stop "unary" .Generic
" not defined for \"difftime\" objects"))
(return e1)))
(<- boolean (switch .Generic (*named*
< *r-missing*)
(*named* >
*r-missing*)
(*named* ==
*r-missing*)
(*named* !=
*r-missing*)
(*named* <=
*r-missing*)
(*named* >=
*r-true*)
*r-false*))
(if boolean (r-block (if (&& (r-call
inherits e1 "difftime")
(r-call inherits e2 "difftime"))
(r-block (<- e1 (r-call coerceTimeUnit e1))
(<- e2 (r-call coerceTimeUnit e2))))
(r-call NextMethod .Generic))
(if (|\|\|| (r-call ==
.Generic "+")
(r-call ==
.Generic "-"))
(r-block (if (&& (r-call
inherits e1 "difftime")
(r-call ! (r-call inherits e2 "difftime")))
(return (r-call structure (r-call NextMethod .Generic)
(*named* units (r-call attr e1 "units"))
(*named* class "difftime"))))
(if (&& (r-call
! (r-call inherits e1 "difftime"))
(r-call inherits e2 "difftime"))
(return (r-call structure (r-call NextMethod .Generic)
(*named* units (r-call attr e2 "units"))
(*named* class "difftime"))))
(<- u1 (r-call
attr e1 "units"))
(if (r-call ==
(r-call attr e2 "units") u1)
(r-block (r-call structure (r-call NextMethod .Generic)
(*named* units u1) (*named* class "difftime")))
(r-block (<- e1 (r-call coerceTimeUnit e1))
(<- e2 (r-call coerceTimeUnit e2))
(r-call structure (r-call NextMethod .Generic)
(*named* units "secs")
(*named* class "difftime")))))
(r-block (r-call stop
.Generic "not defined for \"difftime\" objects"))))))))
(<- "*.difftime" (lambda (e1 e2)
(let ((e2 ())
(e1 ())
(tmp ()))
(r-block (if (&& (r-call inherits e1 "difftime")
(r-call inherits e2 "difftime"))
(r-call stop "both arguments of * cannot be \"difftime\" objects"))
(if (r-call inherits e2 "difftime")
(r-block (<- tmp e1)
(<- e1 e2)
(<- e2 tmp)))
(r-call structure (r-call * e2
(r-call unclass e1))
(*named* units (r-call
attr e1 "units"))
(*named* class "difftime"))))))
(<- "/.difftime" (lambda (e1 e2)
(let ()
(r-block (if (r-call inherits e2 "difftime")
(r-call stop "second argument of / cannot be a \"difftime\" object"))
(r-call structure (r-call / (r-call
unclass e1)
e2)
(*named* units (r-call
attr e1 "units"))
(*named* class "difftime"))))))
(<- Math.difftime (lambda (x ...)
(let ()
(r-block (r-call stop .Generic
"not defined for \"difftime\" objects")))))
(<- mean.difftime (lambda (x ... na.rm)
(let ((args ())
(coerceTimeUnit ())
(na.rm ()))
(r-block (when (missing na.rm)
(<- na.rm *r-false*))
(<- coerceTimeUnit (lambda (x)
(let () (r-block (r-call as.vector (switch (r-call attr x "units")
(*named* secs x)
(*named* mins (r-call * 60 x))
(*named* hours (r-call * (r-call
* 60 60)
x))
(*named* days (r-call * (r-call *
(r-call * 60 60) 24)
x))
(*named* weeks (r-call * (r-call
* (r-call * (r-call * 60 60) 24) 7)
x))))))))
(if (r-call length (r-call
list r-dotdotdot))
(r-block (<- args (r-call
c (r-call lapply (r-call list x r-dotdotdot) coerceTimeUnit)
(*named* na.rm na.rm)))
(r-call structure
(r-call do.call "mean" args) (*named* units "secs")
(*named* class "difftime")))
(r-block (r-call structure
(r-call mean (r-call as.vector x)
(*named* na.rm na.rm))
(*named* units (r-call attr x "units"))
(*named* class "difftime"))))))))
(<- Summary.difftime (lambda (... na.rm)
(let ((args ())
(ok ())
(coerceTimeUnit ()))
(r-block (<- coerceTimeUnit (lambda (x)
(let () (r-block (r-call as.vector (switch (r-call attr x "units")
(*named* secs x)
(*named* mins (r-call * 60 x))
(*named* hours (r-call * (r-call
* 60 60)
x))
(*named* days (r-call * (r-call *
(r-call * 60 60) 24)
x))
(*named* weeks (r-call * (r-call
* (r-call * (r-call * 60 60) 24) 7)
x))))))))
(<- ok (switch .Generic (*named*
max *r-missing*)
(*named* min
*r-missing*)
(*named*
range
*r-true*)
*r-false*))
(if (r-call ! ok)
(r-call stop .Generic
" not defined for \"difftime\" objects"))
(<- args (r-call c (r-call
lapply (r-call list r-dotdotdot) coerceTimeUnit)
(*named* na.rm na.rm)))
(r-call structure (r-call
do.call .Generic args)
(*named* units "secs")
(*named* class "difftime"))))))
(<- seq.POSIXt (lambda (from to by length.out along.with ...)
(let ((mon ())
(yr ())
(r1 ())
(by2 ())
(by ())
(valid ())
(res ())
(to ())
(from ())
(status ())
(tz ())
(cfrom ())
(along.with ())
(length.out ()))
(r-block (when (missing length.out)
(<- length.out ()))
(when (missing along.with)
(<- along.with ()))
(if (missing from)
(r-call stop "'from' must be specified"))
(if (r-call ! (r-call inherits
from "POSIXt"))
(r-call stop "'from' must be a POSIXt object"))
(<- cfrom (r-call as.POSIXct from))
(if (r-call != (r-call length
cfrom)
1)
(r-call stop "'from' must be of length 1"))
(<- tz (r-call attr cfrom "tzone"))
(if (r-call ! (missing to))
(r-block (if (r-call ! (r-call
inherits to "POSIXt"))
(r-call stop "'to' must be a POSIXt object"))
(if (r-call != (r-call
length (r-call as.POSIXct to))
1)
(r-call stop "'to' must be of length 1"))))
(if (r-call ! (missing along.with))
(r-block (<- length.out (r-call
length along.with)))
(if (r-call ! (r-call is.null
length.out))
(r-block (if (r-call !=
(r-call length length.out) 1)
(r-call stop
"'length.out' must be of length 1"))
(<- length.out
(r-call
ceiling
length.out)))))
(<- status (r-call c (r-call ! (missing
to))
(r-call ! (missing
by))
(r-call ! (r-call
is.null length.out))))
(if (r-call != (r-call sum status)
2)
(r-call stop "exactly two of 'to', 'by' and 'length.out' / 'along.with' must be specified"))
(if (missing by)
(r-block (<- from (r-call
unclass cfrom))
(<- to (r-call
unclass (r-call
as.POSIXct to)))
(<- res (r-call
seq.int
from to (*named*
length.out length.out)))
(return (r-call
structure
res (*named*
class (r-call c "POSIXt" "POSIXct"))
(*named*
tzone tz)))))
(if (r-call != (r-call length by)
1)
(r-call stop "'by' must be of length 1"))
(<- valid 0)
(if (r-call inherits by "difftime")
(r-block (<- by (r-call * (switch
(r-call attr by "units") (*named* secs 1)
(*named* mins 60) (*named* hours 3600) (*named* days 86400)
(*named* weeks (r-call * 7 86400)))
(r-call unclass by))))
(if (r-call is.character by)
(r-block (<- by2 (r-call
r-aref (r-call strsplit by " "
(*named* fixed *r-true*))
1))
(if (|\|\|| (r-call
> (r-call length by2) 2)
(r-call < (r-call length by2) 1))
(r-call stop
"invalid 'by' string"))
(<- valid (r-call
pmatch (r-call r-index by2
(r-call length by2))
(r-call c "secs" "mins" "hours" "days" "weeks" "months" "years" "DSTdays")))
(if (r-call
is.na valid)
(r-call stop
"invalid string for 'by'"))
(if (r-call <=
valid 5)
(r-block (<-
by (r-call r-index (r-call c 1 60 3600 86400
(r-call * 7 86400))
valid))
(if (r-call == (r-call length by2) 2) (<- by (r-call * by
(r-call as.integer (r-call
r-index by2 1))))))
(<- by (if
(r-call == (r-call length by2) 2) (r-call as.integer (r-call r-index by2 1))
1))))
(if (r-call ! (r-call
is.numeric by))
(r-call stop "invalid mode for 'by'"))))
(if (r-call is.na by)
(r-call stop "'by' is NA"))
(if (r-call <= valid 5)
(r-block (<- from (r-call
unclass (r-call as.POSIXct from)))
(if (r-call ! (r-call
is.null length.out))
(<- res (r-call
seq.int from (*named* by by)
(*named* length.out length.out)))
(r-block (<- to
(r-call unclass (r-call as.POSIXct to)))
(<- res (r-call + (r-call seq.int 0
(r-call - to from) by)
from))))
(return (r-call
structure
res (*named*
class (r-call c "POSIXt" "POSIXct"))
(*named*
tzone tz))))
(r-block (<- r1 (r-call
as.POSIXlt
from))
(if (r-call == valid
7)
(r-block (if (missing
to)
(r-block (<- yr (r-call seq.int (r-call r-aref r1
(index-in-strlist year (r-call attr
r1 #0#)))
(*named* by by)
(*named* length length.out))))
(r-block (<- to (r-call as.POSIXlt to))
(<- yr (r-call seq.int (r-call r-aref r1
(index-in-strlist year (r-call attr
r1 #0#)))
(r-call r-aref to
(index-in-strlist year (r-call attr to #0#)))
by))))
(r-block (<- r1 (r-call r-aref<- r1
(index-in-strlist year (r-call attr r1 #0#)) yr))
yr)
(r-block (ref= %r:9 (r-call - 1)) (<- r1 (r-call r-aref<- r1
(index-in-strlist isdst (r-call
attr r1 #0#))
%r:9))
%r:9)
(<- res (r-call as.POSIXct r1)))
(if (r-call ==
valid 6)
(r-block (if
(missing to) (r-block (<- mon (r-call seq.int (r-call r-aref r1
(index-in-strlist mon
(r-call attr r1 #0#)))
(*named* by by)
(*named* length length.out))))
(r-block (<- to (r-call as.POSIXlt to))
(<- mon (r-call seq.int (r-call r-aref r1
(index-in-strlist mon (r-call attr
r1 #0#)))
(r-call + (r-call * 12
(r-call - (r-call r-aref to
(index-in-strlist
year (r-call
attr to #0#)))
(r-call r-aref r1
(index-in-strlist
year (r-call attr
r1 #0#)))))
(r-call r-aref to
(index-in-strlist mon (r-call attr
to #0#))))
by))))
(r-block (<- r1 (r-call r-aref<- r1
(index-in-strlist mon (r-call attr r1 #0#)) mon))
mon)
(r-block (ref= %r:10 (r-call - 1)) (<- r1 (r-call r-aref<- r1
(index-in-strlist isdst (r-call
attr r1 #0#))
%r:10))
%r:10)
(<- res (r-call as.POSIXct r1)))
(if (r-call
== valid 8)
(r-block (if (r-call ! (missing to)) (r-block (<- length.out (r-call + 2
(r-call floor (r-call / (r-call - (r-call unclass (r-call as.POSIXct to))
(r-call unclass (r-call as.POSIXct from)))
86400))))))
(r-block (ref= %r:11 (r-call seq.int (r-call r-aref r1
(index-in-strlist mday
(r-call attr r1 #0#)))
(*named* by by)
(*named* length length.out)))
(<- r1 (r-call r-aref<- r1
(index-in-strlist mday (r-call attr r1 #0#))
%r:11))
%r:11)
(r-block (ref= %r:12 (r-call - 1))
(<- r1 (r-call r-aref<- r1
(index-in-strlist isdst (r-call attr r1 #0#))
%r:12))
%r:12)
(<- res (r-call as.POSIXct r1))
(if (r-call ! (missing to)) (<- res (r-call r-index res
(r-call <= res
(r-call
as.POSIXct to)))))))))
(return res)))))))
(<- cut.POSIXt (lambda (x breaks labels start.on.monday right
...)
(let ((res ())
(maxx ())
(incr ())
(start ())
(valid ())
(by2 ())
(breaks ())
(x ())
(right ())
(start.on.monday ())
(labels ()))
(r-block (when (missing labels)
(<- labels ()))
(when (missing start.on.monday)
(<- start.on.monday
*r-true*))
(when (missing right)
(<- right *r-false*))
(if (r-call ! (r-call inherits x
"POSIXt"))
(r-call stop "'x' must be a date-time object"))
(<- x (r-call as.POSIXct x))
(if (r-call inherits breaks "POSIXt")
(r-block (<- breaks (r-call
as.POSIXct breaks)))
(if (&& (r-call is.numeric
breaks)
(r-call == (r-call
length breaks)
1))
(r-block)
(if (&& (r-call
is.character
breaks)
(r-call == (r-call
length breaks)
1))
(r-block (<- by2 (r-call
r-aref (r-call strsplit breaks " "
(*named* fixed *r-true*))
1))
(if (|\|\||
(r-call > (r-call length by2) 2) (r-call < (r-call length by2) 1))
(r-call stop "invalid specification of 'breaks'"))
(<- valid (r-call
pmatch (r-call r-index by2
(r-call length by2))
(r-call c "secs" "mins" "hours" "days" "weeks" "months" "years" "DSTdays")))
(if (r-call
is.na valid)
(r-call stop "invalid specification of 'breaks'"))
(<- start (r-call
as.POSIXlt (r-call min x
(*named* na.rm *r-true*))))
(<- incr 1)
(if (r-call
> valid 1)
(r-block (r-block (<- start (r-call r-aref<- start
(index-in-strlist sec (r-call attr start
#0#))
0))
0)
(<- incr 59.990000000000002)))
(if (r-call
> valid 2)
(r-block (r-block (<- start (r-call r-aref<- start
(index-in-strlist min (r-call attr start
#0#))
0))
0)
(<- incr (r-call - 3600 1))))
(if (r-call
> valid 3)
(r-block (r-block (<- start (r-call r-aref<- start
(index-in-strlist hour (r-call attr start
#0#))
0))
0)
(<- incr (r-call - 86400 1))))
(if (r-call
== valid 5)
(r-block (r-block (ref= %r:13 (r-call - (r-call r-aref start
(index-in-strlist mday (r-call
attr start #0#)))
(r-call r-aref start
(index-in-strlist wday (r-call
attr start #0#)))))
(<- start (r-call r-aref<- start
(index-in-strlist mday (r-call attr start
#0#))
%r:13))
%r:13)
(if start.on.monday (r-block (ref= %r:14 (r-call + (r-call r-aref
start (index-in-strlist mday (r-call attr start #0#)))
(r-call ifelse (r-call
> (r-call r-aref start
(index-in-strlist wday (r-call attr start #0#)))
0)
1 (r-call
- 6))))
(<- start (r-call r-aref<- start
(index-in-strlist
mday (r-call attr
start #0#))
%r:14))
%r:14))
(<- incr (r-call * 7 86400))))
(if (r-call
== valid 6)
(r-block (r-block (<- start (r-call r-aref<- start
(index-in-strlist mday (r-call attr start
#0#))
1))
1)
(<- incr (r-call * 31 86400))))
(if (r-call
== valid 7)
(r-block (r-block (<- start (r-call r-aref<- start
(index-in-strlist mon (r-call attr start
#0#))
0))
0)
(r-block (<- start (r-call r-aref<- start
(index-in-strlist mday (r-call attr start
#0#))
1))
1)
(<- incr (r-call * 366 86400))))
(if (r-call
== valid 8)
(<- incr (r-call * 25 3600)))
(if (r-call
== (r-call length by2) 2)
(<- incr (r-call * incr
(r-call as.integer (r-call r-index by2 1)))))
(<- maxx (r-call
max x (*named* na.rm *r-true*)))
(<- breaks
(r-call seq.int start
(r-call + maxx incr) breaks))
(<- breaks
(r-call r-index breaks
(r-call : 1
(r-call + 1
(r-call max (r-call which (r-call < breaks maxx))))))))
(r-call stop "invalid specification of 'breaks'"))))
(<- res (r-call cut (r-call
unclass x)
(r-call unclass
breaks)
(*named* labels
labels)
(*named* right
right)
r-dotdotdot))
(if (r-call is.null labels)
(r-block (ref= %r:15 (r-call
as.character (r-call r-index breaks
(r-call - (r-call length breaks)))))
(<- res (r-call
levels<-
res %r:15))
%r:15))
res))))
(<- julian (lambda (x ...)
(let () (r-block (r-call UseMethod "julian")))))
(<- julian.POSIXt (lambda (x origin ...)
(let ((res ())
(origin ()))
(r-block (when (missing origin)
(<- origin (r-call
as.POSIXct
"1970-01-01"
(*named* tz
"GMT"))))
(if (r-call != (r-call length
origin)
1)
(r-call stop "'origin' must be of length one"))
(<- res (r-call difftime (r-call
as.POSIXct x)
origin (*named*
units "days")))
(r-call structure res
(*named* origin origin))))))
(<- weekdays (lambda (x abbreviate)
(let () (r-block (r-call UseMethod "weekdays")))))
(<- weekdays.POSIXt (lambda (x abbreviate)
(let ((abbreviate ()))
(r-block (when (missing abbreviate)
(<- abbreviate
*r-false*))
(r-call format x
(r-call ifelse
abbreviate
"%a" "%A"))))))
(<- months (lambda (x abbreviate)
(let () (r-block (r-call UseMethod "months")))))
(<- months.POSIXt (lambda (x abbreviate)
(let ((abbreviate ()))
(r-block (when (missing abbreviate)
(<- abbreviate *r-false*))
(r-call format x
(r-call ifelse
abbreviate "%b"
"%B"))))))
(<- quarters (lambda (x abbreviate)
(let () (r-block (r-call UseMethod "quarters")))))
(<- quarters.POSIXt (lambda (x ...)
(let ((x ()))
(r-block (<- x (r-call %/% (r-block
(ref= %r:0 (r-call as.POSIXlt x)) (r-call r-aref %r:0
(index-in-strlist mon (r-call attr
%r:0 #0#))))
3))
(r-call paste "Q"
(r-call + x 1)
(*named* sep ""))))))
(<- trunc.POSIXt (lambda (x units)
(let ((x ())
(units ()))
(r-block (when (missing units)
(<- units (r-call c "secs"
"mins" "hours" "days")))
(<- units (r-call match.arg
units))
(<- x (r-call as.POSIXlt x))
(if (r-call > (r-call length (r-call
r-aref x (index-in-strlist sec (r-call attr x #0#))))
0)
(switch units (*named* secs
(r-block (r-block (ref= %r:16 (r-call trunc (r-call r-aref x
(index-in-strlist sec (r-call
attr x #0#)))))
(<- x (r-call r-aref<- x
(index-in-strlist sec (r-call attr x #0#))
%r:16))
%r:16)))
(*named* mins (r-block
(r-block (<- x (r-call r-aref<- x
(index-in-strlist sec (r-call attr x #0#)) 0))
0)))
(*named* hours (r-block
(r-block (<- x (r-call r-aref<- x
(index-in-strlist sec (r-call attr x #0#)) 0))
0)
(r-block (<- x (r-call r-aref<- x
(index-in-strlist min (r-call attr x #0#)) 0))
0)))
(*named* days (r-block
(r-block (<- x (r-call r-aref<- x
(index-in-strlist sec (r-call attr x #0#)) 0))
0)
(r-block (<- x (r-call r-aref<- x
(index-in-strlist min (r-call attr x #0#)) 0))
0)
(r-block (<- x (r-call r-aref<- x
(index-in-strlist hour (r-call attr x #0#)) 0))
0)
(r-block (ref= %r:17 (r-call - 1)) (<- x (r-call r-aref<- x
(index-in-strlist isdst (r-call
attr x #0#))
%r:17))
%r:17)))))
x))))
(<- round.POSIXt (lambda (x units)
(let ((x ())
(units ()))
(r-block (when (missing units)
(<- units (r-call c "secs"
"mins" "hours" "days")))
(if (&& (r-call is.numeric
units)
(r-call == units 0))
(<- units "secs"))
(<- units (r-call match.arg
units))
(<- x (r-call as.POSIXct x))
(<- x (r-call + x
(switch units (*named*
secs 0.5)
(*named* mins 30) (*named* hours 1800) (*named* days 43200))))
(r-call trunc.POSIXt x
(*named* units units))))))
(<- "[.POSIXlt" (lambda (x ... drop)
(let ((val ())
(drop ()))
(r-block (when (missing drop)
(<- drop *r-true*))
(<- val (r-call lapply x "["
r-dotdotdot (*named*
drop drop)))
(r-block (ref= %r:18 (r-call
attributes x))
(<- val (r-call
attributes<-
val %r:18))
%r:18)
val))))
(<- "[<-.POSIXlt" (lambda (x i value)
(let ((x ())
(cl ())
(value ()))
(r-block (if (r-call ! (r-call
as.logical (r-call
length value)))
(return x))
(<- value (r-call as.POSIXlt
value))
(<- cl (r-call oldClass x))
(r-block (ref= %r:19 (r-block
(<- value (r-call class<- value
()))
()))
(<- x (r-call class<-
x %r:19))
%r:19)
(for n (r-call names x)
(r-block (ref= %r:20 (r-call
r-aref value n))
(r-block (ref=
%r:21 (r-call r-index<- (r-call r-aref x n) i %r:20))
(<- x (r-call r-aref<- x n %r:21)) %r:21)
%r:20))
(r-block (<- x (r-call class<-
x cl))
cl)
x))))
(<- as.data.frame.POSIXlt (lambda (x row.names optional ...)
(let ((value ())
(optional ())
(row.names ()))
(r-block (when (missing
row.names)
(<- row.names ()))
(when (missing
optional)
(<- optional
*r-false*))
(<- value (r-call
as.data.frame.POSIXct
(r-call
as.POSIXct x)
row.names
optional
r-dotdotdot))
(if (r-call ! optional)
(r-block (ref=
%r:22 (r-call r-aref (r-call deparse (substitute x)) 1))
(<- value (r-call names<- value %r:22)) %r:22))
value))))
(<- rep.POSIXct (lambda (x ...)
(let ((y ()))
(r-block (<- y (r-call NextMethod))
(r-call structure y
(*named* class (r-call
c "POSIXt" "POSIXct"))
(*named* tzone (r-call
attr x "tzone")))))))
(<- rep.POSIXlt (lambda (x ...)
(let ((y ()))
(r-block (<- y (r-call lapply x rep
r-dotdotdot))
(r-block (ref= %r:23 (r-call
attributes x))
(<- y (r-call
attributes<- y
%r:23))
%r:23)
y))))
(<- diff.POSIXt (lambda (x lag differences ...)
(let ((i1 ())
(xlen ())
(r ())
(ismat ())
(differences ())
(lag ()))
(r-block (when (missing lag)
(<- lag 1))
(when (missing differences)
(<- differences 1))
(<- ismat (r-call is.matrix x))
(<- r (if (r-call inherits x "POSIXlt")
(r-call as.POSIXct x)
x))
(<- xlen (if ismat (r-call
r-index (r-call
dim x)
1)
(r-call length r)))
(if (|\|\|| (r-call > (r-call
length lag)
1)
(r-call > (r-call
length differences)
1)
(r-call < lag 1)
(r-call <
differences
1))
(r-call stop "'lag' and 'differences' must be integers >= 1"))
(if (r-call >= (r-call * lag
differences)
xlen)
(return (r-call structure (r-call
numeric 0)
(*named*
class "difftime")
(*named*
units "secs"))))
(<- i1 (r-call : (r-call - 1)
(r-call - lag)))
(if ismat (for i (r-call : 1
differences)
(<- r (r-call - (r-call
r-index r i1 *r-missing*
(*named* drop *r-false*))
(r-call r-index r
(r-call : (r-call - (r-call nrow r))
(r-call - (r-call + (r-call - (r-call nrow r) lag) 1)))
*r-missing* (*named* drop *r-false*)))))
(for i (r-call : 1
differences)
(<- r (r-call - (r-call
r-index r i1)
(r-call
r-index r
(r-call :
(r-call - (r-call length r)) (r-call - (r-call + (r-call - (r-call length r)
lag)
1))))))))
r))))
(<- duplicated.POSIXlt (lambda (x incomparables ...)
(let ((x ())
(incomparables ()))
(r-block (when (missing
incomparables)
(<- incomparables
*r-false*))
(<- x (r-call as.POSIXct
x))
(r-call NextMethod "duplicated"
x)))))
(<- unique.POSIXlt (lambda (x incomparables ...)
(let ((incomparables ()))
(r-block (when (missing incomparables)
(<- incomparables
*r-false*))
(r-call r-index x
(r-call ! (r-call
duplicated x incomparables r-dotdotdot)))))))
(<- sort.POSIXlt (lambda (x decreasing na.last ...)
(let ((na.last ())
(decreasing ()))
(r-block (when (missing decreasing)
(<- decreasing *r-false*))
(when (missing na.last)
(<- na.last NA))
(r-call r-index x
(r-call order (r-call
as.POSIXct x)
(*named*
na.last
na.last)
(*named*
decreasing
decreasing))))))))