the*_*ist 1 terminology r operators
我想知道::和:::运算符的函数在R中是如何不同的.
但是,我无法弄清楚这些运营商的名称是什么,所以google或SO搜索没有证明是有用的.我?::在R中尝试时也遇到错误
所以...
什么是::和:::运营商叫?
怎么做::和:::不同?(即,每个人究竟做了什么)?
事实证明,有一种独特的方式来访问运营商的帮助信息,例如这些冒号:在运营商周围添加引号.[例如,?'::'或help(":::")].
问题的答案可以在"Double Colon和Triple Colon Operators"的帮助页面上找到(见这里).
对于包pkg,pkg :: name返回命名空间pkg中导出的变量名的值,而pkg ::: name返回内部变量名的值.如果在调用之前未加载包命名空间,则将加载包命名空间,但包不会附加到搜索路径.
通过检查每个代码可以看出差异:
> `::`
function (pkg, name)
{
pkg <- as.character(substitute(pkg))
name <- as.character(substitute(name))
getExportedValue(pkg, name)
}
<bytecode: 0x00000000136e2ae8>
<environment: namespace:base>
> `:::`
function (pkg, name)
{
pkg <- as.character(substitute(pkg))
name <- as.character(substitute(name))
get(name, envir = asNamespace(pkg), inherits = FALSE)
}
<bytecode: 0x0000000013482f50>
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)
:: calls getExportedValue(pkg, name),返回name包名称空间中导出变量的值.
:::调用get(name, envir = asNamespace(pkg), inherits = FALSE),在name包的Namespace环境中搜索对象,并返回内部变量的值name.
那么,命名空间到底是什么?
该站点很好地解释了R中命名空间的概念.重要的是:
顾名思义,名称空间为"名称"提供了"空格".它们提供了查找与名称关联的对象的值的上下文.
| 归档时间: |
|
| 查看次数: |
5146 次 |
| 最近记录: |