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") <- valuex
}describe(c) <- "GOOD"
describe(c)# 返回 [1] "GOOD"
4. 等价调用(语法糖拆解)
describe(c) <- "GOOD"
# 等价于
c <- `describe<-`(c, "GOOD")
5. 小结
- 获取函数:
foo <- function(x) {...}
- 替换函数:
<- function(x, value) {...}
- 替换函数必须返回修改后的对象。
foo(x) <- value
是语法糖,底层调用"foo<-"(x, value)
。