R表功能适用于所有列

问题描述

我想将R中的表函数应用于所有列。

我想查看我的目标和所有其他列的分布。这是一个例子:

table(df$target,df$variable1)

我有500列。我该如何为我的所有500列做到这一点?

table(df$target,df$variable1),table(df$target,df$variable2),df$variable3) 

没有一一写? (有适用吗?)

解决方法

一个选项是lapplysetdiff遍历除“ target”以外的其他列名(假设我们需要所有其他列),然后获取“ target”的table ',然后循环返回一列list频率表

outlst <- lapply(setdiff(names(df),'target'),function(nm) table(df$target,df[[nm]]))