用于制表数据框中变量的循环

时间:2017-01-25 20:19:30

标签: r loops frequency

我有dfn个变量。 我想循环遍历变量的子集并生成频率表。

例如,下面给出df

id a b c d 
1 0 1 0 1 
2 1 0 1 0
3 0 1 0 1

我试图做以下事情但没有成功:

varlist <- c("a", "c")

for (i in varlist){
   print(table(df$i))
               }

1 个答案:

答案 0 :(得分:2)

(首先,您的矩阵df将转换为数据框:)

df <- setNames(as.data.frame(df), letters[1:4])

$不适用于变量。您必须改为使用[[

for (i in varlist){
  print(table(df[[i]]))
}

但是,更容易解决问题的方法是lapply

lapply(df[varlist], table)

来自Extract的帮助页面:

  

主要区别在于$不允许计算索引,而[[则不允许。