Nic*_*nce 1 functional-programming r
我习惯在Mathematica中使用Pure函数.我如何在R中使用它们?例如:
给定一个数字列表,我想根据数字是正数还是负数来指定TRUE/FALSE.
z <- do.call(rnorm,list(n=10)) # Generate 10 numbers
f <- function(x) { x > 0 ? TRUE : FALSE } # Searching for proper syntax
b <- lapply(z,f)
Run Code Online (Sandbox Code Playgroud)
谢谢
缩小翻译,你的功能是:
f <- function(x) { if (x > 0) TRUE else FALSE }
Run Code Online (Sandbox Code Playgroud)
(你不需要使用,ifelse()因为这是一个x将成为标量的上下文(即长度为1的向量))
f <- function(x) { x > 0 }
Run Code Online (Sandbox Code Playgroud)
会给你同样的结果lapply:所以会
lapply(z,">",0)
Run Code Online (Sandbox Code Playgroud)
如上所述,您可以使用ifelse(z>0,TRUE,FALSE).但是没有必要指定逻辑返回值,因为结果z>0已经是逻辑向量.这样做的惯用方法是
z <- rnorm(10) ## no need for do.call() in this example
z > 0
Run Code Online (Sandbox Code Playgroud)
(逻辑比较在R中向量化)