列内の変数の頻度を取得するために、次のコードを使用しました。
s = table(students$Sport)
t = as.data.frame(s)
names(t)[1] = 'Sport'
t
これは機能しますが、次のように並べ替えられていない大量のリストが表示されます。
1 Football 20310
2 Rugby 80302
3 Tennis 5123
4 Swimming 73132
… … …
68 Basketball 90391
最も頻繁なスポーツが一番上になるように、このテーブルをどのように並べ替えますか。また、上位5つのオプションのみを表示する方法はありますか?68の異なるスポーツすべてではなく?
または、代わりに、これにアプローチするためのより良い方法がある場合。
どんな助けでもいただければ幸いです!
dplyrを使用して、例の下にある1行ですべてを実行できます。
library(dplyr)
students = data.frame(sport = c(rep("Football", 200),
rep("Rugby", 130),
rep("Tennis", 100),
rep("Swimming", 40),
rep("Basketball", 10),
rep("Baseball", 300),
rep("Gimnastics", 70)
)
)
students %>% group_by(sport) %>% summarise( n = length(sport)) %>% arrange(desc(n)) %>% top_n(5, n)
# A tibble: 5 x 2
sport n
<fct> <int>
1 Baseball 300
2 Football 200
3 Rugby 130
4 Tennis 100
5 Gimnastics 70
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加