У меня фрейм данных выглядит примерно так:
id <- c(1, 1, 1, 2, 2, 2, 3, 3, 3)
x <- c(1, 1, 0, 0, 1, 1, 1, 1, 1)
df <- data.frame(id, x)
Я хочу сохранить только первое значение = 1 для каждого идентификатора, в противном случае я хочу, чтобы оно = 0, и выглядело так:
id x
<dbl> <dbl>
1 1 1
2 1 0
3 1 0
4 2 0
5 2 1
6 2 0
7 3 1
8 3 0
9 3 0
Я пробовал этот код, но безуспешно:
df %>%
group_by(id) %>%
mutate(x = if (any(x == 1)) replace(x,
row_number() != 1, 0) else x)
```