R - 在apply函数中使用“next”语句

时间:2016-01-04 19:51:29

标签: r lapply

看起来next语句(用于停止当前评估并转到for循环的下一次迭代)在apply函数内不起作用。

示例:lapply(1:10, function(x) if (x == 5) {next} else {print(x)})

next中的apply是否方便替换?

2 个答案:

答案 0 :(得分:1)

以下是使用Hadley的 purrr 包的选项:

library(purrr)
1:5 %>% map_if(~.x != 5, ~print(.x))

答案 1 :(得分:1)

像你这样的案件的简短回答是return

lapply(1:10, function(x) if (x == 5) {return()} else {print(x)})

有道理,因为您正在应用的代码是一个函数。显然我假设你的真实案例更复杂,而忽略if的真正手臂是行不通的。