分類

2016-07-08 19 views
1

私はこのようになります私のデータの時間列があります。私は、このような予測分析に多項回帰モデルのためのターゲット列を作成しようとしてい分類

9:41:12 AM 7:13:00 PM 4:15:54 PM 1:40:49 PM 12:52:37 PM 3:18:11 PM 5:00:02 PM 7:12:25 PM 5:34:47 PM 9:03:39 AM 
1:00:01 PM 1:00:16 PM 1:00:22 PM 1:00:41 PM 1:00:47 PM 1:00:53 PM 1:01:45 PM 1:01:54 PM 1:02:40 PM 

を私は異なるバケツに時間範囲を入れることができます。

私の試みの一例は以下のとおりである:

ifelse(df$time > 10:00 AM & df$time < 1:00 PM, 1, 
ifelse(df$time >= 1:00 PM & df$time < 10:00 PM, 2, NA)) 

それは予想外のシンボルのエラーが発生します。

私はR: Seperating out a mixed data column, date above multiple timesを見ましたが、私の問題は解決しませんでした。

助けてください。

編集:dputの

サンプル:

structure(c(2630L, 1973L, 1560L, 183L, 1100L, 1419L, 1674L, 
1971L), .Label = c("1:00:01 PM", "1:00:16 PM", "1:00:22 PM", "1:00:41 PM", 
"1:00:47 PM", "1:00:53 PM", "1:01:45 PM", "1:01:54 PM"), class = "factor") 
+1

は、あなたのDFオブジェクト上dputの結果を表示してくださいすることができますか? – Stedy

答えて

1

それはあなたが両方のデータ内と比較して時間を入力した方法です。

日付は、適切な形式(秒を省略したもの)で、比較に引用符付きの文字列である必要があります。

また、文字としてではなく、適切なクラスに格納されていることを確認する必要があります。

a <- c("9:41:12 AM", "9:41:12 PM") 
class(a) # Can't use character data the way you want to 

a <- data.frame(a=a,flag=NA) # Flag will indicate AM/PM 
a$flag <- grepl(" AM",a$a) 

require(lubridate)  # lubridate makes working with time fun and easy 
a$a <- hms(a$a)  # give it a proper class 
a$a[a$flag == F] <- a$a[a$flag == F] + hms("12:00:00") # add 12 hours if it's PM 
a 
a   flag 
1 9H 41M 12S TRUE 
2 21H 41M 12S FALSE 
# Now let's do a comparison: 
hms("12:00:00") > a$a #works 

[1] TRUE FALSE

+0

ハイライトに感謝し、非常に便利です。今比較のために来る。私は出力を[1] 2 2とし、出力は[1] 2 2で 'a $ b = ifelse(a $ a <'10H 00M 00S'、1、ifelse(a $ a> '10H 00M 00S'、2、NA)その結果を期待していた[1] 1 2。何が問題になると思いますか? – user1783739