【发布时间】:2018-08-25 09:46:34
【问题描述】:
我有一个包含 3 列的简单数据框:name、goal 和 actual。 因为这是对更大数据框的简化,所以我想使用 dplyr 来计算每个人实现目标的次数。
df <- data.frame(name = c(rep('Fred', 3), rep('Sally', 4)),
goal = c(4,6,5,7,3,8,5), actual=c(4,5,5,3,3,6,4))
结果应该是这样的:
我应该能够传递类似于下面显示的匿名函数,但语法不太正确:
library(dplyr)
g <- group_by(df, name)
summ <- summarise(g, met_goal = sum((function(x,y) {
if(x>y){return(0)}
else{return(1)}
})(goal, actual)
)
)
当我运行上面的代码时,我看到了其中 3 个错误:
警告信息: 1:如果(x == y){: 条件的长度 > 1,并且只使用第一个元素
【问题讨论】:
标签: r dplyr anonymous-function