【发布时间】:2014-07-04 10:45:28
【问题描述】:
我在 do() 中应用了用户定义的函数,但在某些情况下,我不需要进行计算(捕获 log(
my_function<-function(data) {
if(data$a<0) {
return(NULL) #?????????
} else {
return(data.frame(ln=log(data$a)))
}
}
table<-data.frame(a=seq(10,-10,by=-1),b=seq(0,20,by=1))
result<-table %>%
group_by(b) %>%
do(
my_function(data=.)
)
【问题讨论】:
-
在这种情况下,也许你不需要
do: table %>% filter(a >0) %>% mutate(ln=log(a)) 为你工作跨度> -
在这种情况下是的,但这只是一个小例子,实际代码更复杂。