我有一个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))
}
我有一个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))
}
(首先,你的矩阵df
转化为数据帧:)
df <- setNames(as.data.frame(df), letters[1:4])
$
没有与变量一起工作。你必须使用[[
代替:
for (i in varlist){
print(table(df[[i]]))
}
但是,对于您的问题更容易解决方案是lapply
:
lapply(df[varlist], table)
从Extract
帮助页面:
的主要区别在于
$
不允许计算指标,而[[
呢。
'lapply(dat [varliat],table)' – user20650
'table(df [varlist])''? – Uwe
@UweBlock;这将给出不止一个维度的应急表格。看起来好像需要单变量表 – user20650