我有这样的数据:
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()
做了一些实验,但是我并没有实现总是通过用户/组的相应长度
答案 0 :(得分:3)
我们可以按顺序分组
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)))