I have a code that reads in data from a .txt file, in which there is a date column dd/mm/yyyy and time column HH:MM:SS and I want to merge the columns into one date time column yyyy/mm/dd HH:MM:SS.
The data frame structure is:
structure(list(V1 = c("05/02/2019", "07/02/2019", "08/02/2019",
"09/02/2019", "10/02/2019", "11/02/2019", "12/02/2019", "13/02/2019"
),
V2 = c("10:37:34", "00:00:00", "00:00:00", "00:00:00", "00:00:00",
"00:00:00", "00:00:00", "00:00:00"),
V3 = c("0,2", "0", "0",
"0", "0", "0", "0", "0"),
V4 = c("NEW-BLOCK", "NEW-DAY", "NEW-DAY",
"NEW-DAY", "NEW-DAY", "NEW-DAY", "NEW-DAY", "NEW-DAY"),
V5 = c("",
"", "", "", "", "", "", ""),
V6 = c("", "", "", "", "", "", "",
"")), row.names = 5:12, class = "data.frame")
My working code is:
importeddataframe <-read.table(k,fill =TRUE, stringsAsFactors =FALSE )
importeddataframe$V1<-chron(importeddataframe$V1, importeddataframe$V2, format =c(dates="d/m/y", times="h:m:s"))
importeddataframe$V1<-chron(importeddataframe$V1, importeddataframe$V2, format =c(dates="yyyy-mm-dd", times="H:M:S"))
where k is the path source, V1 is the date column, V2 is the time column, and I am trying to redefine V1 as a datetime column using chron. I managed to set up the correct format for the dates and times except for one detail: the month is always an abbreviation rather than a number. So February would be Feb instead of 02, October would be Oct instead of 10, etc.
Is there a parameter I need to change in the chron function? Is there another function that doesn't create a written abbreviation for time?
Thank you for all the help!
Using chron:
importeddataframe$V1<-chron::chron(importeddataframe$V1, importeddataframe$V2, format =c(dates="d/m/y", times="h:m:s"), out.format=c(dates="y-m-d", times="H:M:S"))
> importeddataframe$V1
[1] (19-02-05 10:37:34) (19-02-07 00:00:00) (19-02-08 00:00:00) (19-02-09 00:00:00) (19-02-10 00:00:00) (19-02-11 00:00:00) (19-02-12 00:00:00)
[8] (19-02-13 00:00:00)
Using base R
importeddataframe$Time <- as.POSIXct(paste(importeddataframe$V1,importeddataframe$V2), format="%d/%m/%Y %H:%M:%S" )
> importeddataframe$Time
[1] "2019-02-05 10:37:34 CET" "2019-02-07 00:00:00 CET" "2019-02-08 00:00:00 CET" "2019-02-09 00:00:00 CET" "2019-02-10 00:00:00 CET"
[6] "2019-02-11 00:00:00 CET" "2019-02-12 00:00:00 CET" "2019-02-13 00:00:00 CET"