0

我尝试使用循环创建一组表(答案数据框):

for (col in 1:ncol(answers)){
 table(subset(answers,answers[,col]>6,select=answers[,col]),subset(answers,answers[,col]>6,select=c(clu)))
}

但我有一个错误:

Error in sort.list(y) : 'x' for 'sort.list' must be atomic.

我的代码有什么问题?我可以使用列名而不是索引吗?谢谢!

4

1 回答 1

0

像这样的模式更像 R:

lapply(answers, table, answers$clu)

例如,请参见使用内置数据集的此代码:

lapply(cars, table, cars$dist)

lapply对每一列执行函数,您可以使用它table在每一列上运行。因此,上面的代码示例针对数据集中table(cars$a_column, cars$dist)的每一列运行cars

于 2013-10-28T08:42:58.063 回答