注: 一般に、ユーザーが作成したシンボル名を大文字で始めないでください。これらは内部関数と競合する可能性があるためです。
出力をどのように変換したいかは明確ではありません。1つの解釈は、あなたがただ欲しいということです:
{166302, 333668, 332964, 167066}
あなたが使用するコードでは、 の[[2, 1]]
使用方法を知っていると思いますPart
。これはその短い形式です。のドキュメントには次がPart
含まれます。
リストiのいずれかがAll
または;;
である場合、そのレベルのすべての部分が保持されます。
したがって、次を使用できます。
Tally[list][[All, 2]]
以下を使用することもできます。
Last /@ Tally[list]
ジョージコメントとしてを使用できますSort
。これは、データの構造上Tally
、各リストの最初に表示され、各リストの長さが同じであるため、アイテムによって最初に並べ替えられます。
tally =
{{{"b","b"},166302},{{"b","a"},333668},{{"a","b"},332964},{{"a","a"},167066}};
Sort[tally][[All, 2]]
{167066, 332964, 333668, 166302}
データをオブジェクトのリストに変換してRule
から、事前に定義されたリストから値を取得することもできます。
rules = Rule @@@ tally
{{"b", "b"} -> 166302, {"b", "a"} -> 333668, {"a", "b"} -> 332964, {"a", "a"} -> 167066}
これらは任意の順序で指定できます。
{{"a", "a"}, {"a", "b"}, {"b", "a"}, {"b", "b"}} /. rules
{167066, 332964, 333668, 166302}
カウントしたいアイテムの特定のリストがある場合、別の手法を説明するだけで、これSow
に価値があり、Reap
構築できる場合があります。たとえば、次のランダムなリストを使用し"a", "b", "c", "d"
ます。
SeedRandom[1];
dat = RandomChoice[{"a", "b", "c", "d"}, 50];
"a"
and"c"
要素のカウント:
Reap[Sow[1, dat], {"a", "c"}, Tr[#2] &][[2, All, 1]]
{19, 5}
これはそれほど高速ではありませんが、要素ごとにTally
実行するよりも高速であり、構文が役立つ場合もあります。Count