帮助文件调用attributes()
一个函数。它的语法看起来像一个函数调用。甚至class(attributes)
都将其称为函数。
但是我看到我可以为attributes(myobject)
分配一些东西,这似乎很不正常。例如,我无法为log(myobject)
分配任何内容。
那么attributes()
之类的“功能”的专有名称是什么?还有其他例子吗?除了常规功能,您如何告诉他们? (也就是说,除了尝试supposedfunction(x)<-0
之外。)
最后,我猜想attributes()
的实现会覆盖赋值运算符,以便成为赋值的目的地。我对吗?是否有任何可用的操作指南?
答案 0 :(得分:4)
非常好的观察确实。这是替换功能的示例,如果您仔细查看并在R控制台中键入apropos('attributes')
,它将返回
"attributes"
"attributes<-"
以及其他输出。
因此,基本上,您可以在赋值运算符的左侧符号上进行赋值的位置,您没有在调用attributes
,实际上是在调用attributes<-
,R中有很多这样的函数例如:names(), colnames(), length()
等。在您的示例中,log
没有替代品,因此无法按您预期的方式运行。
定义(来自下面提供的高级R图书链接):
替换函数的行为就像它们在适当位置修改其参数一样, 并具有特殊名称xxx <-。它们通常有两个参数(x 和价值),尽管他们可以拥有更多,而且他们必须返回 修改后的对象
如果要查看这些功能的列表,可以执行以下操作:
apropos('<-$')
,您可以签出具有相似属性的相似功能。
我希望这可以解决您的问题。