2017-02-11 65 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天,第100天= 4.我們缺少第98天,但我們仍然需要將其包括在計數中。

我嘗試以下,但輸出是不是我需要:

DF $計數< - AVE(DF $日,東風$事件,DF $ ID,FUN = seq_along)

感謝您的幫助

+0

現在還不清楚你是怎麼茨艾倫電話號碼。也許你需要'排名' – akrun

+0

嗨akrun,我剛剛更新了我的問題.. – aaaaa

回答

0

我們可以嘗試

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

謝謝你akrun – aaaaa