R语言中的函数28:Reduce(), Filter(), Find(), Map(), Negate(), Position()

介绍

R语言中的Reduce(), Filter(), Find(), Map(), Negate(), Position()是base包中的一些高级函数。随后,很多包也给这些函数提供了更多的扩展。

Reduce()

该函数根据一个二元函数实现累计计算。

Reduce(f, x, init, right = FALSE, accumulate = FALSE)
  • f:一个二元函数
  • x: 一个向量或者列表
  • init: 初始值
  • right: 逻辑值, T表示从右到左,F表示从左到右
  • accumulate: 逻辑值, T表示显示每一步的结果,F表示只显示最后一步的结果

实例

f=function(x,y){
   x+y}
x=list(1,2,3,4)
Reduce(f,x,init = 0,accumulate = T)
# [1]  0  1  3  6 10
Reduce(f,x,init = 1,accumulate = T)
# [1]  1  2  4  7 11

Filter()

Filter(f, x)
  • f:一个返回逻辑值的一元函数
  • x: 一个向量或者列表

实例


f=function(x){
    is.character(x)}
x=list(1,'2',3,'4')
Filter(f,x)
# [[1]]
# [1] "2"
# 
# [[2]]
# [1] "4"


x <- c(3, 8, 2, 6, 4, 9, 7)
Filter(function(num) {
    num > 5 }, x)
# [1] 8 6 9 7

Find()

返回满足要求的元素,只返回第一个。

Find(f, x, right = FALSE, nomatch = NULL)
  • f:一个返回逻辑值的一元函数
  • x: 一个向量或者列表
  • right: 逻辑值, T表示从左到右,F表示从右到左
  • nomatch: 找不到目标值的返回值

实例

f=function(x){
    is.character(x)}
x=list(1,'2',3,'4')
Find(f,x,right = T, nomatch = 'no finding')
# [1] "4"

Find(f,x,right = F, nomatch = 'no finding')
# [1] "2"

Find(f,x=c(1,2,3),right = F, nomatch = 'no finding')
# [1] "no finding"

Map()

Map(f,x)
  • f:一个k元函数
  • x: 一个向量或者列表

实例


f=function(x){
   x^2}
Map(f,x=c(1,2,4,5))
# [[1]]
# [1] 1
# 
# [[2]]
# [1] 4
# 
# [[3]]
# [1] 16
# 
# [[4]]
# [1] 25


f=function(x){
   sum(x)}
l=list(c(1,2),c(5,6),c(4,8))
Map(f,x=l)
# [[1]]
# [1] 3
# 
# [[2]]
# [1] 11
# 
# [[3]]
# [1] 12

Negate()

Negate(f)

该函数用于返回一个与f相反的一个函数,T变F,F变T.

实例

f=function(x){
   x>3}
f2=Negate(f)
x=c(1,2,3,4,5,6)
f(x)
# [1] FALSE FALSE FALSE  TRUE  TRUE  TRUE
f2(x)
# [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE

Position()

该函数用于返回满足条件的元素索引,只返回第一个。

Position(f, x, right = FALSE, nomatch = NA_integer_)
  • f:一个返回逻辑值的一元函数
  • x: 一个向量或者列表
  • right: 逻辑值, T表示从左到右,F表示从右到左
  • nomatch: 找不到目标值的返回值

实例

f=function(x){
   x>3}
x=c(1,2,3,4,5,6)
Position(f,x)
# [1] 4
Position(f,x,right = T)
# [1] 6

相关推荐

  1. R语言dplyr包函数总结

    2023-12-24 08:18:02       33 阅读
  2. 直接写和放在函数不同R语言用法

    2023-12-24 08:18:02       23 阅读
  3. R语言Scale函数与normalize.quantiles()函数异同

    2023-12-24 08:18:02       45 阅读
  4. R语言列表list

    2023-12-24 08:18:02       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-24 08:18:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-24 08:18:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-24 08:18:02       82 阅读
  4. Python语言-面向对象

    2023-12-24 08:18:02       91 阅读

热门阅读

  1. 在深度学习中,端到端的含义

    2023-12-24 08:18:02       52 阅读
  2. 完整的 Meteor NPM 集成

    2023-12-24 08:18:02       62 阅读
  3. k8s 定义 gRPC 存活探针

    2023-12-24 08:18:02       64 阅读
  4. Kafka怎么保证消息发送不丢失

    2023-12-24 08:18:02       46 阅读
  5. 【docker笔记】docker常用命令

    2023-12-24 08:18:02       54 阅读
  6. Python知识(3/20):Python运算符全解

    2023-12-24 08:18:02       61 阅读
  7. mobx-react快速入门使用

    2023-12-24 08:18:02       66 阅读
  8. 详解Keras3.0 KerasNLP Models: GPT2 GPT2Tokenizer

    2023-12-24 08:18:02       49 阅读
  9. MySQL8主主搭建

    2023-12-24 08:18:02       45 阅读