2011-05-28 46 views
1

我想將包含由另一個應用程序由基本Java函數創建的TimeStamps的因子轉換爲R Datetime對象。我使用德國的Windows Vista。將因子轉換爲R中的日期時間對象

目前,我試過兩行沒有成功:

as.POSIXlt(as.character(Time), format="%b %d, %Y %T %r") 
as.POSIXlt(Time, format="%b %d, %Y %T %r") 

我的數據集時的樣子:

structure(c(24L, 25L, 28L, 27L, 26L, 1L, 2L, 3L, 4L, 5L, 6L, 
8L, 7L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 
20L, 21L, 22L, 23L, 30L, 29L, 42L, 52L, 53L, 54L, 55L, 56L, 31L, 
33L, 32L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 43L, 44L, 45L, 
46L, 47L, 48L, 49L, 50L, 51L), .Label = c("Apr 10, 2011 10:29:46 AM", 
"Apr 11, 2011 8:30:51 AM", "Apr 12, 2011 10:16:07 AM", "Apr 13, 2011 9:45:57 AM", 
"Apr 14, 2011 9:05:56 AM", "Apr 15, 2011 8:30:40 AM", "Apr 16, 2011 11:31:42 AM", 
"Apr 16, 2011 2:24:58 AM", "Apr 17, 2011 1:55:50 AM", "Apr 17, 2011 12:30:23 PM", 
"Apr 18, 2011 11:13:29 AM", "Apr 19, 2011 8:25:42 AM", "Apr 20, 2011 9:41:59 AM", 
"Apr 21, 2011 10:51:01 AM", "Apr 22, 2011 11:01:45 AM", "Apr 23, 2011 11:33:41 AM", 
"Apr 24, 2011 11:36:11 AM", "Apr 25, 2011 1:33:56 PM", "Apr 26, 2011 9:42:21 AM", 
"Apr 27, 2011 9:41:53 AM", "Apr 28, 2011 9:20:51 AM", "Apr 29, 2011 7:51:15 AM", 
"Apr 30, 2011 11:43:58 AM", "Apr 7, 2011 9:48:31 AM", "Apr 8, 2011 9:43:02 AM", 
"Apr 9, 2011 11:28:28 PM", "Apr 9, 2011 11:42:25 AM", "Apr 9, 2011 2:10:59 AM", 
"May 1, 2011 11:58:41 AM", "May 1, 2011 3:33:16 AM", "May 10, 2011 9:31:42 AM", 
"May 11, 2011 7:00:21 PM", "May 11, 2011 9:31:11 AM", "May 12, 2011 9:22:29 AM", 
"May 13, 2011 8:46:17 AM", "May 14, 2011 12:40:50 PM", "May 15, 2011 2:36:01 PM", 
"May 16, 2011 8:53:11 AM", "May 17, 2011 9:53:00 AM", "May 18, 2011 10:20:52 AM", 
"May 19, 2011 9:42:22 AM", "May 2, 2011 8:45:46 AM", "May 20, 2011 1:13:02 PM", 
"May 21, 2011 1:10:48 PM", "May 22, 2011 11:31:44 AM", "May 23, 2011 10:10:04 AM", 
"May 24, 2011 10:11:29 AM", "May 25, 2011 9:30:45 AM", "May 26, 2011 9:30:51 AM", 
"May 27, 2011 9:01:07 AM", "May 28, 2011 11:27:56 AM", "May 3, 2011 8:21:01 AM", 
"May 4, 2011 8:11:23 AM", "May 5, 2011 10:10:55 AM", "May 6, 2011 8:01:03 AM", 
"May 9, 2011 9:13:38 AM"), class = "factor") 

sessionInfo() 
R version 2.10.1 (2009-12-14) 
i386-pc-mingw32 

locale: 
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252 
[4] LC_NUMERIC=C     LC_TIME=German_Germany.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

loaded via a namespace (and not attached): 
[1] tools_2.10.1 

什麼問題?

+0

如果你通過'dput'提供你的數據集,對我們來說會更容易。 – 2011-05-28 19:10:59

+0

@Joshua:我不知道輸入。我添加了這種格式的數據。 – Christian 2011-05-28 19:15:13

+0

'sessionInfo()'的輸出是什麼? – 2011-05-28 19:57:31

回答

3

我認爲%T%r是多餘的。試試這個:

as.POSIXlt(as.character(Time), format="%b %d, %Y %r") 

而且(從?strptime)指出,不支持某些格式字符(輸出)在Windows上。

+0

當我運行該命令時,它正確填寫了前28個數字,但是將NA的最後29-56號填入 – Christian 2011-05-28 19:21:10

+0

嗯,我不確定會導致什麼結果。我對答案的第一次嘗試充滿了錯誤(其中之一,它沒有考慮AM/PM);這個新的工作嗎? – 2011-05-28 19:31:17

+0

勉強新的也不起作用。 5月份的所有數據似乎都失敗了。 – Christian 2011-05-28 19:32:42

相關問題