我在do()中应用用户定义的函数,但在某些情况下我不需要进行计算(捕获日志(< 0)).我的功能应该返回什么? NULL也没有()没有帮助.
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=.)
)
最佳答案
my_function<-function(data) {
if(data$a<0) {
return(data.frame(NULL))
} else {
return(data.frame(ln=log(data$a)))
}
}