【发布时间】:2014-06-13 18:02:59
【问题描述】:
我正在尝试一个循环来创建交叉表。我的数据集是:21 列,1300 行。 我想为第 1 列和第 1 列、第 1 列和第 2 列、第 1 列和第 3 列、...、第 1 列和第 21 列创建交叉表。 我使用函数“table”并尝试循环。她是我的代码:
x=data
for (i in length (x)){tab[i]=table(x[,1],x[i])
其中 tab 是交叉表的输出。
我尝试运行,但失败了。你能告诉我如何解决这个问题吗? 它给出了 20 个相同的警告: 在 tab[i]=table(x[,1],x[,i]) 要替换的项目数不是替换长度的倍数
【问题讨论】:
-
您希望输出采用什么格式?您是否在循环之外定义了
tab?for (i in length(x))只会为值i=length(x)运行一次。class(x)是什么?x[,1]和x[i]似乎不太可能按照您对同一对象的预期方式工作。 -
我没有定义选项卡,因为我不知道在使用循环时如何定义。如果是单一案例,我知道如何定义选项卡。例如,a=x[,1],b=x[,2],tab=table(a,b)。对于 (i in ncolumn(x)){tab[i]=table(x[,1],x[i])。格式应该像一个交叉表。
-
我不知道什么是“交叉表”。你能举个例子吗?
-
@MrFlick - 我认为交叉表是指跨所有列的频率表...
-
@MrFlick 例如,a=data[,1] 和 b=data[,2]。 a,b 具有分类编码(1 或 2)。我想知道 a 和 b 之间是如何组成的,所以交叉表显示了同一位置的 a 和 b 中有多少个 1,以及 a 和 b 中有多少个 2。这是一个描述频率表的链接link
标签: r