内置高阶函数

R 有一组内置的高阶函数:MapReduceFilterFindPositionNegate

Map 将给定函数应用于值列表:

words <- list("this", "is", "an", "example")
Map(toupper, words)

Reduce 以递归方式将二进制函数连续应用于值列表。

Reduce(`*`, 1:10)

给定谓词函数和值列表的 Filter 返回一个过滤列表,该列表仅包含谓词函数为 TRUE 的值。

Filter(is.character, list(1,"a",2,"b",3,"c"))

Find 给出谓词函数和值列表返回谓词函数为 TRUE 的第一个值。

Find(is.character, list(1,"a",2,"b",3,"c"))

Position 给定谓词函数和值列表返回谓词函数为 TRUE 的列表中第一个值的位置。

Position(is.character, list(1,"a",2,"b",3,"c"))

Negate 反转谓词函数,使其返回值为 FALSE,返回 TRUE,反之亦然。

is.noncharacter <- Negate(is.character)
is.noncharacter("a")
is.noncharacter(mean)