r - 属性()是R中的函数吗?
问题描述
帮助文件调用attributes()
一个函数。它的语法看起来像一个函数调用。甚至class(attributes)
称其为函数。
但我看到我可以为 分配一些东西attributes(myobject)
,这似乎很不寻常。例如,我不能将任何东西分配给log(myobject)
.
那么“函数”的正确名称是attributes()
什么?还有其他例子吗?除了常规功能之外,您如何区分它们?(除了尝试之外supposedfunction(x)<-0
,就是这样。)
最后,我猜想attributes()
实现会覆盖赋值运算符,以便成为赋值的目的地。我对吗?有没有关于如何做到这一点的有用指南?
解决方案
很好的观察 确实。这是一个替换函数的例子,如果你仔细观察并apropos('attributes')
在你的 R 控制台中输入,它会返回
"attributes"
"attributes<-"
连同其他输出。
所以,基本上你可以在赋值运算符的左边符号上赋值的地方,你不是在调用attributes
,你实际上是在调用attributes<-
,R中有很多这样的函数,例如:names(), colnames(), length()
等等。在你的例子log
中没有任何替换对应物,因此它不能按您预期的方式工作。
定义(来自下面给出的高级 R 书链接):
替换函数的行为就像它们修改了它们的参数一样,并且具有特殊的名称 xxx<-。它们通常有两个参数(x 和 value),尽管它们可以有更多,并且它们必须返回修改后的对象
如果您想查看这些功能的列表,您可以执行以下操作:
apropos('<-$')
并且您可以查看具有类似属性的类似功能。
我希望这可以解决您的问题。
推荐阅读
- java - 进程在 Linux 中通过与 putty 的 ssh 连接被杀死
- java - 方形网格上的原始方程是发散的(计算流体动力学)
- python - 循环遍历字符串python中的json数组
- amazon-cloudformation - 如何在 AWS codestar 中设置环境属性?
- c# - C# WPF - 自定义控件拖放(Visual Studio 风格)
- go - 通过导入父目录,使用 golang 导入子包?
- laravel - Laravel sortBy()无法对集合进行排序
- git - 使用 Git,让人们看到同一项目的不同版本的最佳方式是什么?
- c# - Linq 语句查询,可能的组
- javascript - Wordpress 中的滑块