У меня есть большое количество данных, которые я читаю из различных файлов .csv (используя read_csv). Столбец Datetime читается в файлах и читается как символ класса. Мне нужно преобразовать этот столбец символов в фактическое время даты (и проверить наличие дубликатов) для целей построения. Это становится интересным, потому что дата не всегда в 12-часовом или 24-часовом формате. Часовой пояс также не согласован, но я думаю, что этот бит работает правильно.
Я относительно новичок в R и буду любезен к любым положительным предложениям.
Вот как я я пытаюсь сделать это в настоящее время:
# Add time zone information:
# Some data uses 12-hour clock:
if (sum(grep("AM", Data$Date))||sum(grep("PM", Data$Date))>0){
if (Time_Zone == "Eastern Daylight Time"){
Data$Date_Formatted <- as.POSIXct(Data$Date, "%m/%d/%Y %H:%M:%S", tz = "America/New_York")
Data$Date_Formatted2 <- as.POSIXlt(Data$Date, "%m/%d/%Y %H:%M:%S", tz = "America/New_York")
}
else if (Time_Zone == "Central Daylight Time" || Time_Zone == "Central Standard Time") {
Data$Date_Formatted <- as.POSIXct(Data$Date, "%m/%d/%Y %H:%M:%S", tz = "America/Chicago")
Data$Date_Formatted2 <- as.POSIXlt(Data$Date, "%m/%d/%Y %H:%M:%S", tz = "America/Chicago")
}
}
# Other data uses a 24-hour clock:
else{
if (Time_Zone == "Eastern Daylight Time"){
Data$Date_Formatted <- as.POSIXct(Data$Date, "%m/%d/%Y %k", tz = "America/New_York")
Data$Date_Formatted2 <- as.POSIXlt(Data$Date, "%m/%d/%Y %k", tz = "America/New_York")
}
else if (Time_Zone == "Central Daylight Time" || Time_Zone == "Central Standard Time") {
Data$Date_Formatted <- as.POSIXct(Data$Date, "%m/%d/%Y %k", tz = "America/Chicago")
Data$Date_Formatted2 <- as.POSIXlt(Data$Date, "%m/%d/%Y %k", tz = "America/Chicago")
}
}
Я не уверен, в чем разница между POSIXct и POSIXlt и нашел другой поток, который использовал оба ... так я и сделал ... Я не думаю, что Однако необходимо.
Кажется, что 12-часовое решение работает нормально, но 24-часовой формат все равно должен быть неправильным.