2017-05-31 25 views
1

イベントデータがあるデータフレームがあります。条件に基づいてベクターを分離する方法

私はdifftimeを使用して各イベント間の遅延を計算しましたが、今度は最初のイベントごとに因子を作成したいと思います。これは、各ifelseのように、まったく機能していません

dataframe$delay.event.A = difftime(dataframe$dateA, dataframe$dateStart, units = "days") 
dataframe$delay.event.B = difftime(dataframe$dateB, dataframe$dateStart, units = "days") 
dataframe$delay.event.C = difftime(dataframe$dateC, dataframe$dateStart, units = "days") 
dataframe$delay.first.event = pmin.int(dataframe$delay.event.A, dataframe$delay.event.B, dataframe$delay.event.C, na.rm = TRUE) 

dataframe$event.status = ifelse(
    dataframe$delay.first.event==dataframe$delay.event.A, "event A", ifelse(
    dataframe$delay.first.event==dataframe$delay.event.B, "event B", ifelse(
     dataframe$delay.first.event==dataframe$delay.event.C, "event C" , "no event" 
))) 

以前のものを上書きします

は、ここに私の試みです。

どうすればいいですか?

+0

私は十分に明確でない場合は、詳細をお気軽にお問い合わせください。 –

+1

いくつかのデータと期待される出力を共有してください – Sotos

+2

'dput(head(dataframe [、c(" dateA "、" dateB "、" dateC ")]、50))'を実行して、私たちはそれを再現できますか? –

答えて

1

このようなものは、あなたが探しているものを得ることがあります。

library(dplyr) 

dataframe <- dataframe %>% 
      mutate(event.status = case_when(.$first.event == .$delay.event.A 
              ~ "event A", 
              .$first.event == .$delay.event.B 
              ~ "event B", 
              .$first.event == .$delay.event.C 
              ~ "event C", 
              TRUE 
              ~ "no event" 
              ) 
        ) 
+0

完璧!ありがとう –

関連する問題