Как объединить дату и время в 1 объект

Мои данные таковы:

structure(list(Date = structure(c(1509408000, 1509408000, 1509408000, 
1509408000, 1509408000, 1509408000), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), Time = structure(c(-2208988860, -2208988920, 
-2208988980, -2208989040, -2208989100, -2208989160), class = c("POSIXct", 
"POSIXt"), tzone = "UTC"), O = c(54.62, 54.62, 54.62, 54.62, 
54.63, 54.63), H = c(54.63, 54.63, 54.62, 54.62, 54.63, 54.63
), L = c(54.62, 54.62, 54.62, 54.62, 54.62, 54.62), C = c(54.62, 
54.62, 54.62, 54.62, 54.62, 54.62), date.time = structure(c(NA_real_, 
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), class = c("POSIXct", 
"POSIXt"), tzone = "")), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame"))

Я хочу, чтобы время либо имело ту же дату, что и в столбце «Дата», либо вообще не имело даты. Для первого решения я попытался взять дату из столбца «Дата» и время из столбца «Время», чтобы создать столбец даты и времени.

Я пробовал следующий код:

data_frame2$date.time <- as.POSIXct(paste0(data_frame2$Date,  data_frame2$Time), format="%Y-%m-%d %H:%M:%S")

но я получаю NA в созданном столбце date.time.

Я также попытался избавиться от даты с помощью:

data_frame2_date_filter$Time <- format(ymd_hms(data_frame2_date_filter$Time), "%H:%M:%S")

atr_results$Time <- parse_date_time(atr_results$Time, "HMS")
atr_results$Time <- times(strftime(atr_results$Time, format="%H:%M:%S"))

но эти тоже не работают.


person EJG_27    schedule 28.12.2018    source источник
comment
Вы можете просто извлечь время. format(df$Time, "%H:%M:%S")   -  person Ronak Shah    schedule 28.12.2018
comment
1. Извлеките информацию о часах из столбца Time; 2. Вставьте, используя paste, а не paste0. as.POSIXct((paste(df$Date, strftime(df$Time, format = "%H:%M:%S")))). Для этого может быть дубликат.   -  person pogibas    schedule 28.12.2018
comment
Как раз собирался опубликовать то, что опубликовал @PoGibas. Вы также можете просто использовать %T вместо %H:%M:%S.   -  person nicola    schedule 28.12.2018
comment
когда я попробовал data_frame2$date.time ‹- as.POSIXct((paste(data_frame2$Date, strftime(data_frame2$Time, format = %H:%M:%S)))) время в новом столбце было изменено: сначала время строки было 23:59:00 сейчас 01:23:00 время второй строки было 23:58:00 сейчас сейчас 01:22:00   -  person EJG_27    schedule 28.12.2018
comment
Вы должны указать часовой пояс в as.POSIXct, попробуйте tz = "UTC"   -  person pogibas    schedule 28.12.2018
comment
Да, добавление tz = UTC создало правильное время   -  person EJG_27    schedule 28.12.2018