R - Добавить десятичное значение для каждой группы - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть такие данные:

User | 
--------------
 1   | 
 1   | 
 2   | 
 2   |
 2   | 

И хотел бы добавить десятичное приращение для пользователя / группы, например:

User | value 
--------------
 1   | 0.0
 1   | 0.2
 2   | 0.0
 2   | 0.2
 2   | 0.4 

Я пытался:

df %>% group_by(User) %>% mutate(value = row_number())

но, конечно, row_number не добавляет десятичных дробей. Кроме того, я провел несколько экспериментов с seq(), но мне не удалось пропустить соответствующую длину пользователя / группы

1 Ответ

0 голосов
/ 01 ноября 2018

Мы можем сделать группу по последовательности

library(dplyr)
df1 %>%
   group_by(User) %>%
   mutate(value = seq(0, length.out = n(), by = 0.2))
# A tibble: 5 x 2
# Groups:   User [2]
#   User value
#  <dbl> <dbl>
#1     1   0  
#2     1   0.2
#3     2   0  
#4     2   0.2
#5     2   0.4

Или с row_number()

df1 %>%
   group_by(User) %>% 
   mutate(value = 0.2 * (row_number()-1))

данные

df1 <- data.frame(User = rep(c(1, 2), c(2, 3)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...