Skip to content

RFE: vectorized behavior for as.POSIXct tz argument

4 messages · Jack Tanner, David Winsemius

#
x <- 1472562988 + 1:10; tz <- rep("EST",10)

# Case 1: Works as documented
ct <- as.POSIXct(x, tz=tz[1], origin="1960-01-01")

# Case 2: Fails
ct <- as.POSIXct(x, tz=tz, origin="1960-01-01")

If case 2 worked, it'd be a little easier to process paired (time, time zone)
vectors from different time zones.
#
On Dec 2, 2011, at 2:28 PM, Jack Tanner wrote:

            
sapply(tz, function(ttt) as.POSIXct(x=x, tz=ttt,  
origin="1960-01-01"),simplify=FALSE)
David Winsemius, MD
West Hartford, CT
#
David Winsemius <dwinsemius <at> comcast.net> writes:
Sure, there's no end of workarounds. It would just be consistent to treat both
the x and the tz arguments as vectors.
#
On Dec 2, 2011, at 4:06 PM, Jack Tanner wrote:

            
I've wondered abut that too. The function where I would like to see a  
dual vectorized application is 'rep'. In cases where the x argument is  
the same length as the 'times' or 'each' arguments I would like to see  
it produce  a vector that is sum(each) or tume(times) long.

The problem is most likely in the ambiguity of how to apply the  
arguments:

 > unlist(sapply(1:5, function(tt)  rep(1:5, each=tt)))
  [1] 1 2 3 4 5 1 1 2 2 3 3 4 4 5 5 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1  
1 1 2 2 2 2 3
[40] 3 3 3 4 4 4 4 5 5 5 5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5  
5 5 5


 > mapply("rep", x=1:5, each=1:5)
[[1]]
[1] 1

[[2]]
[1] 2 2

[[3]]
[1] 3 3 3

[[4]]
[1] 4 4 4 4

[[5]]
[1] 5 5 5 5 5
David Winsemius, MD
West Hartford, CT