【发布时间】:2019-05-15 18:40:11
【问题描述】:
@g-grothendieck 对this question 的回答启发了我尝试一些赋值函数,例如==<- 或><-。
请参阅以下内容:
`><-` <- function(e1,e2,value) replace(e1, e1 > e2, value)
x <- c(5,15)
x > 10 <- 42
x
# [1] 5 42
我也可以为< 定义它:
`<<-` <- function(e1, e2, value) replace(e1, e1 < e2, value)
x <- c(5,15)
x < 10 <- 42
x
# [1] 42 15
但问题是现在 <<- 运算符被重新定义,这不再起作用了:
x <<- "hello"
替换错误(e1, which(e1
有趣的是x < y <- z 调用<<-,即使它没有被覆盖。
rm(`<<-`)
x < 10 <- 42
x 的参数数量不正确
是否有一种方法可以在保留 <<- 的原始行为的同时仍定义此自定义行为?
【问题讨论】:
-
"但问题是现在
标签: r variable-assignment assignment-operator