如何"回滚"做完`+`=`-`之后?

时间:2016-03-07 19:24:34

标签: r function

主要问题

我做了

> `+` = `-`
> 5 + 2
[1] 3

我怎样才能"回滚"没有重新启动控制台?做

> `+` = sum

当然,恢复+但不是全部的一个功能。例如

> c(3,4) + c(1,2)
[1] 10

如何恢复+的其他功能?

其他相关问题

这是否有一个名称"类型的任务"或者那种" +"和" - "代表什么?

可以使用哪些术语来区分功能" +"来自功能"%+%"那个人可以创造

`%+%` = function(x,y){print(paste(x,"+",y,"=",x+y))}

2 个答案:

答案 0 :(得分:6)

rm()从工作区中删除对象。

rm(`+`)

将删除掩盖内置函数的自定义定义。

你所做的任务并没有什么特别之处。正如nrussell指出的那样,中缀运算符(也称为二元运算符)通常可以通过将它们包装在百分号中来定义。基本的数学运算符(+-*/^,偶数=<-以及逻辑运算符,==|||&&&<等等,特别是解析器知道他们&#39 ;二进制运算符甚至没有包含在%中。您可以查看?Arithmetic(别名?"+")和?base::Ops了解详情。

答案 1 :(得分:4)

您可以通过在重新分配中完全限定该功能来覆盖它:

`+` = `-`
5 + 2
#[1] 3

`+` <- base::`+`
5 + 2
#[1] 7

然而,正如Gregor建议的那样,仅仅rm新功能可能更好,否则你将不必要地在你的环境中浮动额外的物体。

+-*等,甚至%+%等函数称为中缀运算符。区别在于前者是内置于R语言(它们是原语),因此不需要包含在% %中以避免生成解析错误。