主要问题
我做了
> `+` = `-`
> 5 + 2
[1] 3
我怎样才能"回滚"没有重新启动控制台?做
> `+` = sum
当然,恢复+
但不是全部的一个功能。例如
> c(3,4) + c(1,2)
[1] 10
如何恢复+
的其他功能?
其他相关问题
这是否有一个名称"类型的任务"或者那种" +"和" - "代表什么?
可以使用哪些术语来区分功能" +"来自功能"%+%"那个人可以创造
`%+%` = function(x,y){print(paste(x,"+",y,"=",x+y))}
答案 0 :(得分:6)
rm()
从工作区中删除对象。
rm(`+`)
将删除掩盖内置函数的自定义定义。
你所做的任务并没有什么特别之处。正如nrussell指出的那样,中缀运算符(也称为二元运算符)通常可以通过将它们包装在百分号中来定义。基本的数学运算符(+
,-
,*
,/
,^
,偶数=
和<-
以及逻辑运算符,==
,|
,||
,&
,&&
,<
等等,特别是解析器知道他们&#39 ;二进制运算符甚至没有包含在%
中。您可以查看?Arithmetic
(别名?"+"
)和?base::Ops
了解详情。
答案 1 :(得分:4)
您可以通过在重新分配中完全限定该功能来覆盖它:
`+` = `-`
5 + 2
#[1] 3
`+` <- base::`+`
5 + 2
#[1] 7
然而,正如Gregor建议的那样,仅仅rm
新功能可能更好,否则你将不必要地在你的环境中浮动额外的物体。
+
,-
,*
等,甚至%+%
等函数称为中缀运算符。区别在于前者是内置于R语言(它们是原语),因此不需要包含在% %
中以避免生成解析错误。