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)
相关推荐
安妮的小熊呢21 小时前
CRMEB开源商城系统 & 标准版系统(PHP)开发规范
开发语言·javascript·php
子榆.21 小时前
CANN ATC编译器:模型从Python到达芬奇指令走了多远
开发语言·python·neo4j
Dontla21 小时前
Multi-Agent多智能体项目如何从MVP过渡到生产项目?
开发语言
兰令水21 小时前
topcode【随机算法题】【2026.5.20打卡-java版本】
java·开发语言·算法
我还记得那天21 小时前
C语言递归实现汉诺塔问题
c语言·开发语言
不吃土豆的马铃薯21 小时前
Spdlog 入门:日志记录器与日志槽基础详解
服务器·开发语言·c++·c·日志·spdlog
凯瑟琳.奥古斯特21 小时前
传输层核心功能解析
开发语言·网络·职场和发展
Fuyo_111921 小时前
C++中的活字印刷术——模板·初阶
开发语言·c++·笔记
在角落发呆21 小时前
跨越网络鸿沟:传统文件传输与现代内网穿透的奇妙交响
开发语言·php
Season4501 天前
C++之模板元编程(前置知识 constexpr)
开发语言·c++