У меня есть следующая матрица:
set.seed(3690)
example = matrix(sample(1:10, 100, replace = TRUE), nrow = 10)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 4 4 2 7 2 2 3 8 2 5
[2,] 7 3 2 6 6 5 7 8 1 3
[3,] 7 5 7 9 4 9 4 8 2 7
[4,] 5 3 4 2 1 5 9 10 9 5
[5,] 9 10 7 2 7 4 9 1 1 9
[6,] 2 3 5 1 2 8 1 5 9 4
[7,] 5 4 10 5 9 10 1 6 1 10
[8,] 6 3 9 7 1 1 9 2 1 7
[9,] 5 9 4 8 9 9 5 10 5 4
[10,] 10 1 4 7 3 2 3 5 4 5
Как найти в R самые верхние 10
(или верхние 5
) часто встречающиеся элементы на столбец?
Вот как я кодировал это в Stata:
tempvar freq
generate byte `freq'=1
sort serial t0400_0415_d1-t0345_0400_d7
collapse (count) `freq' serial, by(t0400_0415_d1-t0345_0400_d7)
list, sepby(`freq')
gsort -`freq' t0400_0415_d1-t0345_0400_d7
generate rank=_n
keep if rank<=20
drop `freq'
sort t0400_0415_d1-t0345_0400_d7
tempfile top20
save `"`top20'"'
sort rank t0400_0415_d1-t0345_0400_d7
list rank t0400_0415_d1-t0345_0400_d7
Обратите внимание, что t0400_0415_d1
- t0345_0400_d7
являются именами переменных.