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)
相关推荐
snakecy15 小时前
树莓派学习资料共享
大数据·开发语言·学习·系统架构
Nebula_g15 小时前
C语言应用实例:学生管理系统1(指针、结构体综合应用,动态内存分配)
c语言·开发语言·学习·算法·基础
开心-开心急了15 小时前
关于Flutter与Qt for python 的一些技术、开源、商用等问题
开发语言·python·qt·flutter
友友马15 小时前
『 QT 』按钮类控件属性解析
开发语言·数据库·qt
Evand J15 小时前
【MATLAB例程】基于噪声协方差自适应的互补滤波器方法vs标准互补滤波,用于融合加速度计和陀螺仪数据,估计角度
开发语言·matlab
熊小猿15 小时前
RabbitMQ死信交换机与延迟队列:原理、实现与最佳实践
开发语言·后端·ruby
2301_7951672016 小时前
玩转Rust高级应用 如何让让运算符支持自定义类型,通过运算符重载的方式是针对自定义类型吗?
开发语言·后端·算法·安全·rust
梦想平凡16 小时前
情怀源代码工程实践(加长版 1/3):确定性内核、事件回放与最小可运行骨架
开发语言·javascript·ecmascript
笑我归无处16 小时前
强引用、软引用、弱引用、虚引用详解
java·开发语言·jvm