相关疑难解决方法(0)

在为`x <y < - z`定义它时,`<< - `的模糊性

@ 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 …

r variable-assignment assignment-operator

6
推荐指数
1
解决办法
79
查看次数