Как создать счетчик, который группирует повторения в одно и то же значение, игнорируя NA - PullRequest
0 голосов
/ 16 июня 2020

I фрейм данных с более чем 5000 строк моделирования. Моя проблема такова:

rex <- c("Positive", "Negative", NA, "Positive", "Negative", "Negative")

Я хотел бы создать счетчик, который возвращает:

1,2,NA,3,4,4

в результате, когда повторение одного и того же значения имеет тот же счетчик.

Благодарю за любую помощь. Спасибо,

Best

1 Ответ

0 голосов
/ 16 июня 2020

здесь мы могли бы использовать data.table::rleid например,

library(data.table)
rex <- c("Positive", "Negative", NA, "Positive", "Negative", "Negative",NA,"Negative")
idx <- !is.na(rex)

, если rex <- c("Positive", NA, "Positive") должен вывести 1, NA, 1

as.numeric(replace(rex, idx, rleid(rex[idx])))
[1]  1  2 NA  3  4  4 NA  4

если rex <- c("Positive", NA, "Positive") должен вывести 1, NA, 2

as.numeric(replace(rex, idx, rleid(rleid(rex)[idx])))
[1]  1  2 NA  3  4  4 NA  5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...