【发布时间】:2019-12-19 19:25:47
【问题描述】:
data.frame(q1 = sample(c(1, 5), 200, replace = T, prob = c(1/2, 1/2)),
gender = sample(c("M", "F"), 200, replace = T, prob = c(2/3, 1/3))
) %>% tapply(.$q1,list(.$gender),FUN=sum)
我只想通过gender 使用tapply 到sum,但出现如下错误:
tapply(., .$q1, list(.$gender), FUN = sum) 中的错误: 参数必须具有相同的长度
问题出在哪里?
【问题讨论】:
-
tapply(df$q1, df$gender, sum)工作或者如果你想将它与管道一起使用,你可能需要做df %>% {tapply(.$q1,list(.$gender),FUN=sum)} -
@RonakShah,这个
{}有什么用? -
默认情况下,管道的 LHS 是 RHS 上函数的第一个参数,因此通过使用
{}我们可以避免这种行为。