Воссоздание ваши данные следующим образом, предполагая, что имена столбцов, name
и value
:
training.data.raw <- data_frame(name = c("IN", "IS", "IT", "JO", "JP", "KZ", "MA", "MZ", "NG", "NO", "NZ", "PE", "PH", "PR", "RO", "RU", "SA", "SE", "SY", "TM", "TN", "TR", "UK", "US", "WS"),
value = c(999, 1, 1885, 1098, 2, 584, 858, 11, 10, 522, 193, 29, 2, 1, 1603, 353, 6, 2, 4, 33, 228, 3201, 852, 1363, 1));
Вы можете использовать функцию top_n
в dplyr
упаковке легко получить желаемые результаты (подробности в файле помощи ?top_n
):
library(dplyr);
top_3 <- top_n(x=training.data.raw, n=3);
top_3;
EDIT НА ОСНОВЕ КОММЕНТАРИЕВ: Если у вас есть факторы символов вместо обычных векторов символов, вы можете mutate
их первые персонаж:
training.data.characters <- mutate(training.data.raw, name = as.character(name));
# Now top_n() will take it
# Can also explicity state wt argument to tell it to sort by value
top_3 <- top_n(x=training.data.characters, n=3, wt=value);
top_3;
Спасибо, но я получил это сообщение 'Ошибки в методе UseMethod («tbl_vars»): нет применимого метода для 'tbl_vars', примененного к объекту класса «factor». –
Итак, ваши именованные переменные являются «факторами». Это неудобно. Вы можете сначала преобразовать их с помощью 'mutate'. Я обновлю ответ. –
Спасибо! я проверю его –