Сортировка и сохранение различных повторяющихся строк в R - PullRequest
2 голосов
/ 28 марта 2019

У меня есть фрейм данных с одним столбцом (ИМЯ), содержащий следующие значения A, A, A, B, C, D, D, A, A, A, F, F, E, C, B Я хотел бы получить список последовательности этих значений: мой результат должен выглядеть так: A, B, C, D, AF, E, C, B.

Я попробовал следующий код:

data <- data %>%
group_by(ID) %>%
arrange(TIME) %>%
distinct(NAME)

Однако distinct позволяет одному ИМЯ быть включенным только один раз в список / последовательность.

Также пробовал с библиотекой fastmatch, указав fmatch(NAME, unique(NAME), но столкнулся с ошибками.

Спасибо за помощь!

1 Ответ

0 голосов
/ 28 марта 2019

Мы можем использовать rleid из data.table для создания групп на основе разницы в значении между смежными элементами, а затем slice в первой строке

library(dplyr)
library(data.table)
data %>%      
    arrange(ID, TIME) %>%
    group_by(ID, grp = rleid(NAME)) %>%
    slice(1)

data

data <- data.frame(ID = rep(1:3, each = 5), TIME = Sys.Date() + 1:15,
         NAME = c("A","A","A","B","C","D","D","A","A","A","F","F","E","C","B"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...