如何找到以下两个变量的交叉列表?
X Y
6 7
8 8
9 10
我是这样的:
X <- c(6,8,9)
Y <- c(7,8,10)
X <- factor(X)
Y <- factor(Y)
我使用以下命令找到X
和Y
的频率:
table(X)
table(Y)
但我不知道如何使用它们。 我尝试使用命令
打印矩阵table(X,Y)
但这不是我想要的结果,这将是这样的:
Y 6 7 8 9 10
X
6 0 1 0 0 0
7 0 0 0 0 0
8 0 0 1 0 0
9 0 0 0 0 1
10 0 0 0 0 0
数字6,7,8,9,10是X
和Y
的所有不同级别。
答案 0 :(得分:0)
您需要告诉table
每个变量中都没有包含级别。 (过早地将X
和Y
纳入因素实际上会导致更多问题,而不是它的价值。)
X <- c(6,8,9)
Y <- c(7,8,10)
vals <- c(X,Y)
levs <- min(vals):max(vals)
table(factor(X,levs),factor(Y,levs))
如果您从使用levs <- sort(union(levels(X),levels(Y)))
的因素开始。在这种情况下会很烦人,因为R按字母顺序排列因子水平 (&#34; 10&#34;在#34; 6&#34之前出现)。