我有一个类似于下面的示例数据框的数据框:
example = data.frame(
freq = c(22,1,12,4,8,76,55,43,1,34),
x=c("FALSE","FALSE","TRUE","FALSE","TRUE","TRUE","TRUE","FALSE","FALSE","TRUE"),
y=c("FALSE","FALSE","TRUE","FALSE","FALSE","TRUE","TRUE","TRUE","TRUE","TRUE")
)
如果我对最后两列执行普通的 table() 函数,则会根据行频率得到以下结果:
> table(example$x,example$y)
FALSE TRUE
FALSE 3 2
TRUE 1 4
然而,我想要的是一个将各自行的 example$freq 列中的值加在一起的函数,理想情况下会产生如下所示的结果:
FALSE TRUE
FALSE 27 44
TRUE 8 177
这对于现有函数是否可能(理想情况下也能够返回除 [2,2] 之外的维度表)?如果每个实例都有一行,这当然不会成为问题。 27 行 FALSE FALSE 对等,但这不是我的数据当前的格式。如果现有函数无法实现,对于创建所需函数有什么建议吗?
其中任何一个都可以:
xtabs(freq ~ x + y, example)
xtabs(freq ~ ., example)
xtabs(example)
tapply(example[[1]], example[-1], sum)