Я пытаюсь отформатировать столбец дат и времени (datetime) из моего файла «f845», используя as.POSIXct в R. Файл 845 имеет 21 строку для пропусков перед форматированием как видно из первой строки кода ниже, он также имеет два столбца и 100000 строк.Форматирование дат и времени с as.POSIXct в R
Когда я пытаюсь отформатировать столбец datetime со второй строкой кода ниже, я заканчиваю вывод, как видно из данных ниже третьей строки.
Почему мой код не форматирует дату и время?
> dat=read.table(f845,sep="\t",skip=21,col.names=c("datetime","light"))
> dat$datetime=as.POSIXct(strptime(dat$datetime,format="%d-%m-%Y %H:%M:%S", tz="UTC"))
> dat[1:10,]
datetime time
1 <NA> 4.542
2 <NA> 7.949
3 <NA> 5.678
4 <NA> 7.949
5 <NA> 7.949
6 <NA> 6.813
7 <NA> 2.271
8 <NA> 2.271
9 <NA> 2.271
10 <NA> 2.271
Вот как выглядит данные, как перед форматированием:
> dat=read.table(f845,sep="\t",skip=21,col.names=c("datetime","light"))
> dat[1:10,]
datetime light
1 21/05/2013 22:56:07 4.542
2 21/05/2013 23:01:07 7.949
3 21/05/2013 23:06:07 5.678
4 21/05/2013 23:11:07 7.949
5 21/05/2013 23:16:07 7.949
6 21/05/2013 23:21:07 6.813
7 21/05/2013 23:26:07 2.271
8 21/05/2013 23:31:07 2.271
9 21/05/2013 23:36:07 2.271
10 21/05/2013 23:41:07 2.271
Edit: выход dput(droplevels (dput(dat[1:10,]))
будет показано ниже, есть еще большое количество дат, так что я только показать последние несколько линии:
> dput(droplevels(dat[1:10,]))
structure(list(datetime = structure(1:10, .Label = c("21/05/2013 22:56:07",
"21/05/2013 23:01:07", "21/05/2013 23:06:07", "21/05/2013 23:11:07",
"21/05/2013 23:16:07", "21/05/2013 23:21:07", "21/05/2013 23:26:07",
"21/05/2013 23:31:07", "21/05/2013 23:36:07", "21/05/2013 23:41:07"
), class = "factor"), light = c(4.542, 7.949, 5.678, 7.949, 7.949,
6.813, 2.271, 2.271, 2.271, 2.271)), .Names = c("datetime", "light"
), row.names = c(NA, 10L), class = "data.frame")
Попытка 'as.POSIXct (DAT $ DateTime, формат = "% d /% м /% Y% H:% M:% S")' 'Вы использовали -' вместо'/' – akrun
Я я все еще получаю «NA» во всех строках. – JC11
Не могли бы вы вывести вывод 'dput (dat [1:10,])' – akrun