Моя цель - извлечь время из столбца datetime и отобразить его внутри DT :: datatable (). Пример ниже работает нормально:
require(lubridate)
require(dplyr)
df = data.frame(timestring = c("2015-12-12 13:34:56", "2015-12-14 16:23:32"),
localzone = c("America/Los_Angeles", "America/New_York"), stringsAsFactors = F)
df$moment = as.POSIXct(df$timestring, format="%Y-%m-%d %H:%M:%S", tz="UTC")
df = df %>% rowwise() %>% mutate(localtime = force_tz(moment, localzone))
df$t <- strftime(df$moment, format="%H:%M:%S")
df$t2 <- strftime(df$localtime, format="%H:%M:%S")
DT::datatable(df)
Но когда я пытаюсь сделать то же самое с файлом CSV, который импортирует с:
df2<-data.frame(read.csv("C:/Users/User/Documents/spotlight/Spotlight-SampleData/device1-report1583417393205.csv", header = TRUE))
ID EventType EventDate EventValue EventValueExt1 EventValueExt2 EventValueExt3 EventValueExt4
1 12340 steps 2019-11-26T21:18Z 3017 NA NA NA NA
2 12339 steps 2019-11-25T14:23Z 3016 NA NA NA NA
, а затем обработает его:
df2$EventDate<-as.character(df2$EventDate)
df2$moment = as.POSIXct(df2$EventDate, format="%Y-%m-%d %H:%M:%S", tz="UTC")
Я получаю АН в df2$moment
ID EventType EventDate EventValue EventValueExt1 EventValueExt2 EventValueExt3 EventValueExt4 moment
1 12340 steps 2019-11-26T21:18Z 3017 NA NA NA NA <NA>
2 12339 steps 2019-11-25T14:23Z 3016 NA NA NA NA <NA>
Почему это происходит? Я даже пытался преобразовать df2$EventDate
в символ, но он не работает