r - 具有多个项目的交叉表

标签 r crosstab categorical-data

在SPSS中,使用因子(或值)作为表标题很容易(相对)创建带有多个变量的交叉表。因此,类似以下内容(组成数据等)。 Q1,Q2和Q3每个人的每个人的得分分别为1、2或3。我只是将这些留作数字,但它们可能是因素,似乎都无法帮助解决问题。

1(非常)2(很少)3(从不)
Q1。喜欢12 15 13
Q2。推荐22 11 10
Q3。用过的22 12 9

在SPSS中,甚至可以请求行,列或总百分比。

我已经尝试了来自gmodels的table(),ftable(),xtab(),CrossTable()和来自descr的CrossTable(),但是这些都不能处理(afaik)多个变量。他们似乎主要处理与另一个变量交叉的1个变量,而第3个创建图层。

是否有一个包含一些很好的交叉制表/表格示例的软件包,我可以用它解决这个问题?我确定我缺少一些简单的东西,因此感谢您指出我错过的内容。也许我必须将每一行生成为单独的列表,然后制作一个数据框并打印该数据框?

更新:我现在在catspec包中发现了ctab(),它也在正确的轨道上。有趣的是,R没有与SPSS中的Ctables保持一致,后者基本上是“制表”工具,与用于调查研究的旧制表工具相同。 ctab()正在尝试,并且是令人钦佩的第一步……但是您仍然无法使用此表(上方)。

最佳答案

Hmisc程序包具有summary.formula函数,可以根据您的需要执行某些操作。它非常灵活,请查看帮助页面中的示例,但这是解决您的问题的应用程序:

library(Hmisc)
dd <- data.frame(Q1=sample(1:3, 20, replace=T), Q2=sample(1:3, 20, replace=T), 
                 Q3=sample(1:3, 20, replace=T))  #fake data
summary(~Q1+Q2+Q3, data=dd, fun=table)

得到以下结果:
 Descriptive Statistics  (N=20)

 +------+-------+
 |      |       |
 +------+-------+
 |Q1 : 1|25% (5)|
 +------+-------+
 |    2 |45% (9)|
 +------+-------+
 |    3 |30% (6)|
 +------+-------+
 |Q2 : 1|30% (6)|
 +------+-------+
 |    2 |35% (7)|
 +------+-------+
 |    3 |35% (7)|
 +------+-------+
 |Q3 : 1|35% (7)|
 +------+-------+
 |    2 |30% (6)|
 +------+-------+
 |    3 |35% (7)|
 +------+-------+

可能的值以行形式给出,因为它具有针对不同变量的不同值集的灵活性。您可能可以使用函数参数(例如methodfun)来获得另一个方向。

关于r - 具有多个项目的交叉表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2479689/

相关文章:

Rmarkdown 不将系统命令的结果输出到 html 文件

r data.table 在函数调用中的用法

R用随机分类值替换DF的空列

r - 使用 R 和 ggplot2 绘制值的 ECDF

r - 什么是命名号码?

r - 将省略号中的对象名称作为字符串传递给 left_join

sql - 仅使用最小 COUNT() 转置行和列(又名枢轴)?

sql - 使用键作为列将主表数据与另一个表中的键值属性连接起来

java - 如何在 XLS 报表中隐藏交叉表列标题 - 摘要区域中的交叉表和子报表

r - 在 R 中计算分类变量的组合,无论顺序如何?