I am having trouble with creating a POSIXct object. If I create a variable
of class Date first out of the date part of my data, I am ok, but if I
just paste the date and time parts together and try and create the POSIXct
object, I have problems.
Here is a toy example created from the actual data which caused the
problem. I am using R 2.0.1 on Windows XP.
# Data frame with dates and times, as character
PeopleData.df
StartDate StartTime
1 29/10/2001 15:26
2 7/12/2001 10:32
3 16/11/2001 13:58
4 28/11/2001 14:00
5 2/11/2001 15:22
6 26/11/2001 11:15
str(PeopleData.df)
`data.frame': 6 obs. of 2 variables:
$ StartDate: chr "29/10/2001" "7/12/2001" "16/11/2001" "28/11/2001" ...
$ StartTime: chr "15:26" "10:32" "13:58" "14:00" ...
dput(PeopleData.df)
structure(list(StartDate = c("29/10/2001", "7/12/2001", "16/11/2001",
"28/11/2001", "2/11/2001", "26/11/2001"), StartTime = c("15:26",
"10:32", "13:58", "14:00", "15:22", "11:15")), .Names = c("StartDate",
"StartTime"), row.names = c("1", "2", "3", "4", "5", "6"), class =
"data.frame")
BeginDate <- as.Date(PeopleData.df$StartDate,format="%d/%m/%Y")
BeginDate
[1] "2001-10-29" "2001-12-07" "2001-11-16" "2001-11-28" "2001-11-02"
[6] "2001-11-26"
# Create POSIXct date-time object without difficulty
BeginTime <- as.POSIXct(format(paste(BeginDate,PeopleData.df$StartTime),
+ format="%Y/%m/%d %H:%M"))
BeginTime
[1] "2001-10-29 15:26:00 New Zealand Standard Time"
[2] "2001-12-07 10:32:00 New Zealand Standard Time"
[3] "2001-11-16 13:58:00 New Zealand Standard Time"
[4] "2001-11-28 14:00:00 New Zealand Standard Time"
[5] "2001-11-02 15:22:00 New Zealand Standard Time"
[6] "2001-11-26 11:15:00 New Zealand Standard Time"
# But not directly from the dates and times
BeginTime <-
as.POSIXct(format(paste(PeopleData.df$StartDate,PeopleData.df$StartTime),
+ format="%d/%m/%Y %H:%M"))
BeginTime
[1] "0029-10-20 New Zealand Standard Time"
[2] "0007-12-20 New Zealand Standard Time"
[3] "0016-11-20 New Zealand Standard Time"
[4] "0028-11-20 New Zealand Standard Time"
[5] "0002-11-20 New Zealand Standard Time"
[6] "0026-11-20 New Zealand Standard Time"
# Format looks correct to me
paste(PeopleData.df$StartDate,PeopleData.df$StartTime)
[1] "29/10/2001 15:26" "7/12/2001 10:32" "16/11/2001 13:58" "28/11/2001
14:00"
[5] "2/11/2001 15:22" "26/11/2001 11:15"
What I think might be causing the problem is the lack of a leading zero
for some of the days (as in 7/12/2001). This doesn't phase as.Date though.
David Scott
_________________________________________________________________
David Scott Department of Statistics, Tamaki Campus
The University of Auckland, PB 92019
Auckland NEW ZEALAND
Phone: +64 9 373 7599 ext 86830 Fax: +64 9 373 7000
Email: [EMAIL PROTECTED]
Graduate Officer, Department of Statistics
______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html