Calculate frequency in R

Here are my details

> a [1] Male Male Female Male Male Male Female Female Male Male Female Male Male Male [15] Female Female Female Male Female Male Female Male Male Female Male Male Female Male [29] Male Male Female Male Male Male Female Female Male Male Male Male Male Levels: Female Male > b [1] 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 Levels: 0 1 > table(a,b) b a 0 1 0 0 Female 10 4 Male 12 15 

I do not know why the result of table(a,b) has a string (0 0) , my expected result is as follows:

 > table(a,b) b a 0 1 Female 10 4 Male 12 15 

Could you tell me why this is happening and how to fix it, thanks!

 > dput(a) structure(c(3L, 3L, 2L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 2L, 3L, 3L, 3L, 2L, 2L, 2L, 3L, 2L, 3L, 2L, 3L, 3L, 2L, 3L, 3L, 2L, 3L, 3L, 3L, 2L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("", "Female", "Male"), class = "factor") > dput(b) structure(c(1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L), .Label = c("0", "1"), class = "factor") 
+7
r frequency r-factor
source share
1 answer

From the comments above:

This is because there is an empty factor level in a:

 > levels(a) [1] "" "Female" "Male" 

You can continue to create a table that ignores empty factor levels (from @lmo's comment):

 table(as.character(a), b) 

Alternatively, you can easily remove factor levels without observing (from @ Dave2e's comment)

 a <- droplevels(a) table(a, b) 
+1
source share

All Articles