私は電子メールアドレスの配列(約50,000以上)を持っており、特定の電子メールドメインの頻度を数えたいと思っています。例えば、場合、私は 電子メール文字列を区切り文字で区切る
emails = [
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]'
]
を持っていた私は、電子メールドメインが最も現れているに興味を持って、私は、周波数
2
で
'gmail'
を返すようにしたいでしょう。
これを行うには、アレイを通過して、@
より前に発生したすべてのものを破棄し、ドメインを新しい配列として保持してから、それを繰り返すことをお勧めします。どうすればいい?
「counts = emails.each_with_object(Hash.new(0)){| t、h | ...} ' – Stefan
ありがとう!私が整数値に基づいて情報を並べ替えたいのであれば、どうすればいいですか?例えば、私が 'counts.sort'を使った場合(あなたが使ったのと同じカウント)、' [gmail.com、2]、[yahoo.com、1] ..のような出力が得られ、アルファベット順に並べられます。数値的に順序付けが必要です。言い換えれば、最も高い頻度の電子メールで注文します。 – Chumbawoo
気にしないで、 'counts.sort_by {| a、b | b.to_i} ' – Chumbawoo