Include levels of zero count in result of table()

2019-01-01 13:49发布

问题:

I have a vector of integers between 0 and 5. I want to compute a histogram of counts. For example:

y <- c(0, 0, 1, 3, 4, 4)
table(y)
# y
# 0 1 3 4 
# 2 1 1 2 

However, I also want the results to include the fact that there are zero 2\'s and zero 5\'s, ie. I want the returned vector to have length 6. Can I use table() for this?

Desired result:

# y
# 0 1 2 3 4 5 
# 2 1 0 1 2 0

回答1:

Convert your variable to a factor, and set the categories you wish to include in the result using levels. Values with a count of zero will then also appear in the result:

y <- c(0, 0, 1, 3, 4, 4)
table(factor(y, levels = 0:5))
# 0 1 2 3 4 5 
# 2 1 0 1 2 0