我有df
个n
个变量。
我想循环遍历变量的子集并生成频率表。
例如,下面给出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))
}
答案 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
的帮助页面:
主要区别在于
$
不允许计算索引,而[[
则不允许。