2016-01-06 2 views
-3

У меня есть эта таблица, полная символов и цифр, и хотелось бы иметь только 3 верхних частоты, а также собственную переменную. Согласно изображению, я хотел бы иметь результаты в таблицу включены только AZ 520, а затем AE 488, то AU 399.Верхние/максимальные значения в R

Var1 Freq 
1 AE 488 
2 AR 12 
3 AU 399 
4 AW 56 
5 AZ 520 
6 BA 2 
7 BB 84 
8 BG 246 
9 BH 85 
10 BI 6 




as.data.frame(table(training.data.raw$destinationcountry)) 

ответ

2

Воссоздание ваши данные следующим образом, предполагая, что имена столбцов, 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; 
+0

Спасибо, но я получил это сообщение 'Ошибки в методе UseMethod («tbl_vars»): нет применимого метода для 'tbl_vars', примененного к объекту класса «factor». –

+0

Итак, ваши именованные переменные являются «факторами». Это неудобно. Вы можете сначала преобразовать их с помощью 'mutate'. Я обновлю ответ. –

+0

Спасибо! я проверю его –

Смежные вопросы