@ g-grothendieck对这个问题的回答激发了我玩一些赋值函数(他们甚至有名字吗?),比如==<-或><-.
请参阅以下内容:
`><-` <- function(e1,e2,value) replace(e1, e1 > e2, value)
x <- c(5,15)
x > 10 <- 42
x
# [1] 5 42
Run Code Online (Sandbox Code Playgroud)
我也可以定义它<:
`<<-` <- function(e1, e2, value) replace(e1, e1 < e2, value)
x <- c(5,15)
x < 10 <- 42
x
# [1] 42 15
Run Code Online (Sandbox Code Playgroud)
但问题是现在<<-重新定义了运算符,这不再起作用了:
x <<- "hello"
Run Code Online (Sandbox Code Playgroud)
替换错误(e1,其中(e1 <e2),值):缺少参数"value",没有默认值
有趣的是,即使它没有被覆盖也要x < y <- z打电话<<-.
rm(`<<-`)
x < 10 <- 42
Run Code Online (Sandbox Code Playgroud)
x …