的样本数据:表()的组中的R
a <- sample(1:4, 100, replace = T)
b <- sample(0:1, 100, replace = T)
d <- data.frame(a, b)
我想为a
各级自动实现这一目标输出:
table(d$b[d$a==1])
table(d$b[d$a==2])
table(d$b[d$a==3])
table(d$b[d$a==4])
我可以做一个for循环,但是不是在河的精神
for (i in unique(d$a)) {
print(table(d$b[d$a==i]))
}
相反,我想使用的许多单功能之一R. 我试图用ddply
从plyr
包:
ddply(d, ~a, function(x) table(b))
但这只是同table(d$b)
重复四次。
如何使用列表函数将table()
函数应用于a
中的每个组,最好是ddply
?
没有必要'plyr'(一看便知),但你几乎没有:'ddply(d,〜一,功能(X)表(X $ b))'。 'ddply'将子集data.frames传递给函数,并且你希望从这些子集中得到'b'。 – Roland
@Roland也谢谢你。 – iraserd