В вашем конкретном примере вы можете использовать rep
, но позаботьтесь: это не общее решение . На самом деле, я считаю, что общее решение невозможно, потому что summary
отбрасывает информацию об исходном векторе.
x <- factor(c('A', 'A', 'B', 'C', 'C', 'C'))
xs <- summary(x)
rep(names(xs), times=xs)
[1] "A" "A" "B" "C" "C" "C"
Причина, по которой это не является общим, заключается в том, что summary
на самом деле просто дают таблицу сопряженности, таким образом теряя информацию о положении элементов. Например, если я возьму ваш вектор и добавлю еще несколько A
символов в конец, посмотрим, что произойдет:
x <- factor(c('A', 'A', 'B', 'C', 'C', 'C', 'A', 'A'))
xs <- summary(x)
rep(names(xs), times=xs)
[1] "A" "A" "A" "A" "B" "C" "C" "C"
(Теперь у вас есть отсортированный вектор со всеми правильными элементами, но не в правильном порядке.)