我有一个表格,其 Headers 看起来像这样(我简化了它):
id, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10
其中除id之外的每一行都是一个分类变量 . 我们将类别命名为A,B,C,D,E .
我想为一些列创建一个列联表,如下所示(为简洁起见,我没有在单元格中放置样本号) . 获得总列/行会很棒,但不是强制性的,我可以稍后自己计算 .
a1 a2 a3 a4 Total
----------------------
A|
B|
C|
D|
E|
Total|
因此,问题是如何基于R中的多个列创建交叉表?我用table()和xtabs()看过的例子只使用了一列 . 在我的例子中,列是相邻的,因此一个交叉表将汇总列a1..a4,另一个列为a5..a7,依此类推 . 我希望有一种优雅的方式来做到这一点 .
我是程序员,但是R的新手
先感谢您 .
2 回答
为此,您的数据格式很差 . 这是使用
reshape
包正确地重塑数据的一种方法 .要计算所有级别的表,使用边距,您可以使用
对于子集,请采用
data.m
的相关子集 .如果每列具有相同的因子级别,则's how to do it using base R commands. You don' t需要
for
循环,但循环将是一个良好的故障安全 .