2017-02-11 2 views
1

を列を追加し、私のdata.frame:がここに二列に基づく数字で

df = read.table(text = 'Day ID Event 
         100 1  1 
         100 1  1 
         99 1  1 
         97 1  1 
         87 2  1 
         86 2  1 
         85 2  1 
         965 1  2 
         964 1  2 
         960 1  2 
         959 1  2 
         709 2  2 
         708 2  2 
         12 3  2 
          9 3  2', header = TRUE) 

私は何をしたいの各観察のために割り当て、IDEventものを考えると、新しい列を作成することです相対Dayのものに基づいて減少する順番の数字。

私の所望の出力は次のようになります。例えば

     Day ID Event Count 

         100 1  1  4 
         100 1  1  4 
         99 1  1  3 
         97 1  1  1 

         87 2  1  3 
         86 2  1  2 
         85 2  1  1 

         965 1  2  7  
         964 1  2  6 
         960 1  2  2 
         959 1  2  1 

         709 2  2  2 
         708 2  2  1 

         12 3  2  4 
          9 3  2  1 

上記の最初の 'ブロック'を見ると、97日目= 1日目、98日目= 2日目、99日目= 3日目、4日目です。98日目がなくなっていますが、カウントに追加する必要があります。

私は次のことを試してみましたが、出力は私が必要ではないです。

のdf $カウント< - AVE(DF $日、DF $イベント、DF $ ID、FUN = seq_along)

あなたの助けのための

おかげ

+0

試すことができます電子番号。おそらくあなたは 'ランク'が必要です – akrun

+0

こんにちはアクラン、私はちょうど私の質問を更新しました.. – aaaaa

答えて

0

私たちは、あなたがTHOSを得た方法は明らかではない

library(dplyr) 
df %>% 
    group_by(ID, Event) %>% 
    mutate(Count = 1+(Day-Day[n()])) 
+1

akrunありがとう – aaaaa

関連する問題