2015-10-06 36 views
0

我有列時間的數據集。它包括日期和時間在一起。但是,我想在單獨的列中只有小時和分鐘,然後用另一列對其進行繪製。不過,我試過使用:R中的POSIXct返回NA,原因是什麼?

today$Clock<- as.POSIXct(today$time, origin="%H:%M:%S") 
today["Clock"] <- within(today$time, ISOdatetime(YY,MM,DD,hh,mm,0)) 
today$Clock<- strptime(x = as.character(today$time), 
           format = "%d/%m/%Y %H:%M") 

並沒有任何工作..i要麼NA或相同的日期值。

下面是我的一些數據集:

id  fname  uname   time   COUNT... 
1 111449 o1    Name1  2015-03-03 16:14:32 1 
2 100833 o1    Name2  2014-11-28 23:19:15 1 
3 100834 o1    Name2  2014-11-28 23:20:52 1 
4 100835 o1    Name3  2014-11-28 23:21:04 1 
5 100921 o1    Name3  2014-11-30 00:55:56 1 
6 100922 o1    Name3  2014-11-30 00:56:06 1 
7 105983 o1    Name4  2014-12-25 01:22:42 1 
8 108761 o1    Name5  2015-02-01 00:56:55 1 

非常感謝你。

+1

我可能是錯的,但是'origin'在'as.POSIXct'應該像'「1960年1月1日」'不是''%H:%M:%S「'。 – 2015-10-06 10:33:51

+0

你好,是的,這是我的一個嘗試..我使用格式...等。沒有什麼與我合作的 –

+0

另外,在'strptime'中'format'應該是'%Y-%m-%d%H:%M:%S'。 – 2015-10-06 10:37:48

回答

0

如果您只想提取小時和分鐘,則無需製作POSIXct類的變量。你只需要使用substr提取相關時間部分出字符串變量

str <- c('2015-03-03 16:14:32', 
     '2014-11-28 23:19:15', 
     '2014-11-28 23:20:52', 
     '2014-11-28 23:21:04', 
     '2014-11-30 00:55:56', 
     '2014-11-30 00:56:06', 
     '2014-12-25 01:22:42', 
     '2015-02-01 00:56:55') 
as.integer(substr(str, 12,13)) 
as.integer(substr(str, 15,16)) 
+0

,但要使用ggplot2繪製它們,它們應該是POSIXct –

+0

然後我不明白你在做什麼。 – Edwin

相關問題