双向频率表行和列标签

时间:2015-07-15 17:17:14

标签: r frequency

我想设置table()的输出样式。假设我有以下内容:

dat$a <- c(1,2,3,4,4,3,4,2,2,2)
dat$b <- c(1,2,3,4,1,2,4,3,2,2)
table(dat$a,dat$b)

    1   2   3   4
1  50   0   0   0
2   0 150  50   0
3   0  50  50   0
4  50   0   0 100

这有两个问题。首先,它没有给我正确的频率。此外,它没有行标签或列标签。我找到了this,该表适用于频率计数和轴标签。是否存在问题,因为这种方式来自数据框的子集?我很感激有关修复频率计数和添加样式的任何提示。

1 个答案:

答案 0 :(得分:4)

唯一的问题是您向table输入参数的方式。要获得所需的输出(带标签),请使用数据框作为参数,而不是2个向量(列)。如果您有更大的数据框,请仅使用您想要的子集。

 a <- c(1,2,3,4,4,3,4,2,2,2)
 b <- c(1,2,3,4,1,2,4,3,2,2)
 dat <- data.frame(a,b)
 table(dat)

给我输出:

   b
a   1 2 3 4
  1 1 0 0 0
  2 0 3 1 0
  3 0 1 1 0
  4 1 0 0 2

即使你的方法,它也不应该给出错误的频率。您可以尝试重新启动R会话以进行检查。