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 回答