R语言中的获取函数与替换函数

R语言中的获取函数与替换函数

在 R 语言中:

  • 获取函数(getter) :用于读取 对象中的某个部分或属性,形式是 foo(x)
  • 替换函数(replacement) :用于修改 对象中的某个部分或属性,形式是 foo(x) <- value
    实际上,foo(x) <- value 只是语法糖 ,本质调用的是 "foo<-"(x, value)

1. 属性示例

复制代码
c <- 1:99
attr(c, "describe") <- "this is a vector"
attributes(c)   # 查看所有属性

2. 构建获取函数

复制代码
describe <- function(x) {
  attr(x, "describe")
}

describe(c)   # 读取 "describe" 属性

3. 构建替换函数

替换函数名必须写成 <- 的形式,并返回修改后的对象:

复制代码
`describe<-` <- function(x, value) {
  attr(x, "describe") <- value
  x
}

describe(c) <- "GOOD"
describe(c)

# 返回 [1] "GOOD"

4. 等价调用(语法糖拆解)

复制代码
describe(c) <- "GOOD"
# 等价于
c <- `describe<-`(c, "GOOD")

5. 小结

  • 获取函数:foo <- function(x) {...}
  • 替换函数: foo<- <- function(x, value) {...}
  • 替换函数必须返回修改后的对象。
  • foo(x) <- value 是语法糖,底层调用 "foo<-"(x, value)
相关推荐
LDR0066 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术6 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园6 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob6 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享6 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.6 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..6 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽6 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
云水一下6 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
飞天狗1116 天前
零基础JavaWeb入门——第五课第二小节:九大内置对象 · 第2个:response(响应对象)
java·开发语言