Сортировка качественных переменных по группам и ведение индексов - PullRequest
2 голосов
/ 16 марта 2020

У меня есть переменная, состоящая из 6 разных букв, мне нужно отсортировать это, получив 6 разных индексов, чтобы я мог отсортировать набор данных по этой качественной переменной.

вот переменная:

data =   c("H", "H", "A", "A", "B", "R", "E", "B", "E", "B", "A", "E", 
    "R", "R", "I", "B", "I", "I", "H", "A", "E", "I", "B", "I", "H", 
    "B", "R", "E", "B", "R", "H", "R", "I", "A", "B", "E", "A", "E", 
    "I", "H", "A", "E", "I", "H", "R", "H", "A", "R")

при сортировке я получаю только порядок букв c:

data_idx = sort(data, index.return = TRUE)
  • Как получить эти индексы и изменить порядок этой переменной?

1 Ответ

1 голос
/ 16 марта 2020

Мы можем извлечь либо $ или [[, поскольку это list вывод, когда мы используем index.return = TRUE

sort(data, index.return = TRUE)$ix

Другой вариант - order

order(data)

Если нам нужно получить индекс

match(data, unique(data))

Или может быть

split(seq_along(data), data)

Или с ave

ave(seq_along(data), data, FUN = seq_along)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...