用于创建交叉表的循环

时间:2014-06-13 03:08:35

标签: r

我正在尝试循环来创建交叉表。我的数据集是: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])中 要替换的项目数量不是替换长度的倍数

1 个答案:

答案 0 :(得分:0)

可能有帮助

set.seed(25)
mat1 <- matrix( sample(1:10, 100,replace=TRUE), 10,10)

fun1 <- function(dat, colN) {
tab <- vector("list", colN)
for (i in seq_len(ncol(dat))) {
    tab[[i]] <- table(dat[, 1], dat[, i])
   }
  tab
}

res <- fun1(mat1, 10) ##change the column number accordingly