Мне нужно получить номера строк для явных строк, сгруппированных по id. Скажем dataframe (ДФ) выглядит следующим образом:номера строк для явных строк в r
id a b
3 2 NA
3 3 2
3 10 NA
3 21 0
3 2 NA
4 1 5
4 1 0
4 5 NA
Мне нужно создать еще один столбец, который будет давать числовую последовательность строк за исключением случая, когда b == 0
.
желаемый результат:
id a b row
3 2 NA 1
3 3 2 2
3 10 NA 3
3 21 0 -
3 2 NA 4
4 1 5 1
4 1 0 -
4 5 NA 2
Я использовал dplyr, но не в состоянии достичь того же, Мой код:
df <- df %>%
group_by(id) %>%
mutate(row = row_number(id[b != 0]))
Пожалуйста, предложить некоторые лучший способ сделать это.
'мутируют (строка = IfElse (! Is.na (б), Н. А., cumsum (is.na (б))))' ' – Khashaa
Или мутируют (строка = заменить (cumsum (is.na (б)) , b == 0, "-")) ', но вы должны заметить, что, помещая« - »в числовой столбец, он будет принудительно применен к символу. –
обновленный вопрос, может быть какое-то числовое значение в b –