cheetahfly 发表于 2018-6-12 10:20 
两个冒号的函数是供你调用的,三个冒号的函数是供两个冒号的函数调用的。
正在百度R 的三个冒号的解释,不小心又来到经管之家。
这里的解释不太准。
首先,两个冒号读作作用域,R 是面向对象的编程。灵感来自面向对象的编程比如C++语言和JAVA语言呢, 比如打开一个C++ 的函数,会有 use namespace std ; 这样的语句,代表名字空间;
在R里,每一个工具包都被认为一个名字空间。
这里比如想使用一个rugarch 工具包(类似高级语言的库文件)。
高级语言是这样的:
/* my c plus code */
#include <math.h> /* load math file
#inclued <string.h> /* load character steam program file,so that the progran can use stream print ,like matlab`s print function
use namespace stc;
void main()
{
s=100+200; /* simple math calculate
print(s); /* use the h file string which loaded by include command
} /* end of my c plus code
这里使用了作用域,但是我还没好好的写C++ 代码;
所以如果写C代码,必须本地计算机有这个库文件,否则 include 会失效。同理,R 如果要使用作用域调用某个工具包的函数,那么必须先已经安装了工具包的。
假设已经安装了 rugarch ,这里我们不用 library(rugarch) # load package 来调入。直接在没调入的时候使用作用域;
spec= rugarch::ugarchspec() # 设定一个简单的garch 模型
fit<-rugarch::ugarchfit(data=data,spec=spec) # 依然使用作用域
plot(fit) # 我曾经打算使用作用域 rugarch::plot, 不过测试过不需要使用左右与,这个类对象可以被识别。
三个冒号的底层引用方法,官方手册有。我去年见到过。忘记了,哈哈。