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)
相关推荐
JQLvopkk23 分钟前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
玄同76536 分钟前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
czy878747538 分钟前
深入了解 C++ 中的 `std::bind` 函数
开发语言·c++
消失的旧时光-194343 分钟前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
yq19820430115644 分钟前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
一个public的class1 小时前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
Jinkxs1 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&1 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
BD_Marathon1 小时前
设计模式——依赖倒转原则
java·开发语言·设计模式
Liue612312312 小时前
自卸车多部件识别 _ Mask R-CNN改进模型实现(Caffe+FPN)_1
r语言·cnn·caffe