data.table从github使用安装软件包后,我遇到了问题devtools.我的自定义函数(使用data.table功能)在本地加载函数时有效,但是当我在github上创建自定义包并从github安装包时,该函数不再有效.
加载所需的包:
require(PerformanceAnalytics)
if(!require(PerformanceAnalytics)) install.packages("PerformanceAnalytics");
require(PerformanceAnalytics)
require(data.table)
if(!require(data.table)) install.packages("data.table"); require(data.table)
require(devtools)
if(!require(devtools)) install.packages("devtools"); require(devtools)
Run Code Online (Sandbox Code Playgroud)
创建一个虚拟数据集:
data(edhec)
EDHEC<-data.frame(date=index(edhec),coredata(edhec))
EDHEC<-melt(EDHEC,id.vars="date")
EDHEC<-data.table(EDHEC,key=c("variable","date"))
Run Code Online (Sandbox Code Playgroud)
使用devtools从github安装我的包:
install_github("r_jfreels","jfreels"); require(jfreels)
Run Code Online (Sandbox Code Playgroud)
运行我的功能:
test_date(EDHEC)
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:"min(date)中的错误:参数的无效'type'(闭包)"
现在在本地创建函数:
test_date<-function(DF) {
DT<-data.table(date=DF$date,variable=DF$variable,value=DF$value,key=c('variable','value'))
DT[,list(start_date=min(date),end_date=max(date)),by=variable]
}
Run Code Online (Sandbox Code Playgroud)
再次测试该功能:
test_date(EDHEC)
Run Code Online (Sandbox Code Playgroud)
这有效.
这让我疯了,我不知道问题是什么.