2

このサンプル データを考えると:

x = 1:12; names(x) = LETTERS[1:length(x)]
y = c('A','C','E','F','J','E','K','L','E','L','F','A','E')

私がtable(y)得るとき:

A C E F J K L 
2 1 4 2 1 1 2

の他のすべての列見出しのエントリがゼロになるように拡張するにはどうすればよいxですか? 言い換えれば、私が求めている出力は次のとおりです。

A C E F J K L B D G H I
2 1 4 2 1 1 2 0 0 0 0 0

(そこに示されているようにソートされていないか、ソートされているかは気にしません。)

4

2 に答える 2

10

因数を使用する:

table(factor(y, levels = names(x)))
# A B C D E F G H I J K L 
# 2 0 1 0 4 2 0 0 0 1 1 2 
于 2013-05-01T03:13:12.850 に答える
5

でこれを行う方法は考えられませんがtable、とにかく非常に単純なワンライナーです。

sapply(names(x), function(name) {sum(y == name)})

出力:

A B C D E F G H I J K L 
2 0 1 0 4 2 0 0 0 1 1 2 
于 2013-05-01T03:12:47.377 に答える