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)
相关推荐
郑州光合科技余经理6 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1236 天前
matlab画图工具
开发语言·matlab
dustcell.6 天前
haproxy七层代理
java·开发语言·前端
norlan_jame6 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone6 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ4022054966 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
遥遥江上月6 天前
Node.js + Stagehand + Python 部署
开发语言·python·node.js
m0_531237176 天前
C语言-数组练习进阶
c语言·开发语言·算法
Railshiqian6 天前
给android源码下的模拟器添加两个后排屏的修改
android·开发语言·javascript
雪人不是菜鸡6 天前
简单工厂模式
开发语言·算法·c#