我有一个自定义函数,如下所示:
f <- function(case, data, variance, limit) {
data <- subset(data, pid != case$pid)
# do some stuff
out <- data.frame(
pid=case$pid,
comp=data$pid
)
return(data.frame(out[with(out, order(--distances)), ][1:limit,], rank=0:(limit-1)))
# distances being a matrix
}
它被应用在一个数据框上,plyr
就像......
adply(subset(data$pid == 123), 1, f, data=data, variance=var(data.frame(data$foo)), limit=5)
我不知道如何将其迁移到dplyr
using (我猜) mutate()
。如何传递数据框的当前行?我试过这个..
subset(data, pid==123) %>% mutate(foo=f(data=data, variance=var(data.frame(data$foo)), limit=5))
但错误是case
永远不会通过......完全混淆了。