将缺少的列添加到R表

时间:2013-05-01 03:09:42

标签: r

鉴于此样本数据:

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

(如图所示未分类,或排序,我不介意。)

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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