2017-02-11 17 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) 

То, что я хотел бы сделать, это создать новый столбец, который, принимая во внимание ID и Event из них, назначать для каждого наблюдения число в порядке убывания на основе относительных 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, но нам все равно нужно включить его в счет.

Я попытался следующие, но выход не один мне нужно:

ДФ $ Count < - пр (ДФ $ Day, DF $ Event, DF $ ID, FUN = seq_along)

Спасибо за вашу помощь

+0

не ясно, как вы получили Thos e числа. Возможно, вам нужно '? Rank' – akrun

+0

Привет, akrun, я только что обновил свой вопрос .. – aaaaa

ответ

0

Мы можем попробовать

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

спасибо akrun – aaaaa

 Смежные вопросы

  • Нет связанных вопросов^_^