这是我的数据
> 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
我不知道为什么table(a,b)
的结果会有一行(0 0)
,我的期望结果如下:
> table(a,b)
b
a 0 1
Female 10 4
Male 12 15
你能告诉我为什么会发生这种情况以及如何纠正它吗?谢谢!
> 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")
""
的空层级。尝试使用nlevels(a)
函数。 - user20650Levels:__Female Male
中额外的空格,我认为@user20650是正确的。如果只有两个级别,那么应该是Levels:_Female Male
(只有一个空格,下划线代表空格)。 - r2evansdput
中有三个级别(.Label
)。解决您的数据输入问题,您就可以修复表格了。(或者只需重新分配级别,使用levels(a) <- c("女性", "男性")
。) - r2evansa <- droplevels(a)
- Dave2etable(as.character(a), b, useNA="no")
。因子总是有点奇怪。我总是尝试在我的read.
函数系列中使用as=TRUE
,它将变量转换为字符而不是因子。 - lmo