【问题标题】:What function should return to dplyr::do() to skip the case什么函数应该返回到 dplyr::do() 以跳过案例
【发布时间】: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)) 为你工作跨度>
  • 在这种情况下是的,但这只是一个小例子,实际代码更复杂。

标签: r dplyr


【解决方案1】:
my_function<-function(data) {
  if(data$a<0) {
    return(data.frame(NULL)) 
  } else {
    return(data.frame(ln=log(data$a)))
  }
}

【讨论】:

  • 或者只是data.frame()
猜你喜欢
  • 2012-12-04
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 2019-09-18
  • 2020-07-16
  • 2018-09-03
  • 1970-01-01
相关资源
最近更新 更多