2017-04-10 4 views
0

dataframe(Mydata)には値が含まれています。文字時間データを因子に入れる方法

Delivery.Time Customer.Name    Product.Name 
11:22:00  Grace Wangen    Insalatone pollo 
19:46:47  ystein Skagestad   CLASSIC CHEESEBURGER 
08:54:20  Hans Hallseth    Latte 
15:25:21  Thomas Stlen    SUSHI MORIAWASE  
14:45:00  Ingvild Berg    SUSHI CHIISAI 
12:45:33  Christopher Frenning  Funghi 

Mydata["Delivery.Labels"] <- NA ## Added new columns 

deliBreaks <- c("19:00:00","05:00:00","11:00:00","12:00:00","15:00:00") 


Mydata$Delivery.Labels <-c("Dinner", "Breakfast", "Brunch", "Lunch", "Snackstime")[ findInterval(chron(times=Mydata$Delivery.Time), chron(times=deliBreaks))] 

実行中にエラーメッセージが表示されます。

「VECは、」私はこのように私のテーブルルックを探している非漸減

ソートする必要があります。

Delivery.Time Customer.Name    Product.Name      Delivery.Lables 

11:22:00  Grace Wangen    Insalatone pollo   Brunch 
19:46:47  ystein Skagestad   CLASSIC CHEESEBURGER   Dinner 
08:54:20  Hans Hallseth    Latte      Breakfast 
15:25:21  Thomas Stlen    SUSHI MORIAWASE    Snackstime 
14:45:00  Ingvild Berg    SUSHI CHIISAI    Lunch 
12:45:33  Christopher Frenning  Funghi      Lunch 
+0

あなたは質問を書いて、文章であなたが望むものを説明してもらえますか? – Elin

+0

エラーメッセージ( 'vec'は非減少的にソートする必要があります)@Elin –

+0

文字列ではなく 'deliBreaks'を入力してください。 – Elin

答えて

0

ここでは最小限の例を挙げて説明します。 まず、データを時間データに変換します。 次に、cut()関数を使用して、データを時間ブロックに分割します。

time<- strptime(c("11:22:00", "19:46:47", "08:54:20", "15:25:21", "14:45:00", "12:45:33"), format= "%T") 


Delivery.Labels <- cut(time, breaks = strptime(c("00:00:01", "11:00:00","12:00:00","15:00:00", "19:00:00", "23:59:59"), "%T"), 
     labels = c("Breakfast", "Brunch", "Lunch", "Snackstime", "Dinner"), 
     right = TRUE, 
     include.lowest=TRUE 
     ) 

strptime()は文字列を時刻に変換します。 cut()は、データをビンに入れます。 結果のファクタを順序付けることができます。

+0

ありがとうございました。 –

関連する問題