2013-05-03 109 views
4

我在使用devtools從github安裝軟件包後出現data.table軟件包時遇到問題。當我在本地加載函數時,我的自定義函數(使用data.table函數)工作,但是當我在github上創建自定義包並從github安裝包時,函數不再起作用。data.table&devtools:install_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) 

創建一個虛擬數據集:

data(edhec) 
EDHEC<-data.frame(date=index(edhec),coredata(edhec)) 
EDHEC<-melt(EDHEC,id.vars="date") 
EDHEC<-data.table(EDHEC,key=c("variable","date")) 

使用GitHub的devtools安裝我的包:

install_github("r_jfreels","jfreels"); require(jfreels) 

運行我的功能:

test_date(EDHEC) 

這給出了一個錯誤: 「錯誤分鐘(日期):無效的 '類型' 的說法(關閉)」:再次

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] 
} 

測試功能:

現在創建本地功能

test_date(EDHEC) 

This Works。

這使我瘋狂,我不知道問題是什麼。

+3

哇!您是否嘗試過在包裝版本上運行R CMD檢查? – GSee 2013-05-03 17:56:28

回答

5

如果您將Depends: data.table添加到您的DESCRIPTION文件,它將「工作」。不過,你應該真的努力通過R CMD檢查 - 現在,它離得很遠。

+0

將「取決於:data.table」添加到DESCRIPTION文件起作用。 – jfreels 2013-05-03 18:22:32

+1

您可能需要爲ggplot2,plyr,RColorBrewer,reshape2,xts以及您正在使用的其他任何項目添加依賴項。您可能希望將它們添加到Imports,並使用NAMESPACE中的'importFrom'來僅導入所需的符號,而不是將所有這些包添加到Depends。 – GSee 2013-05-03 20:38:04

+1

@jfreels爲了將來的參考,已經有一個FAQ取決於:需要data.table。但不可否認的是,由於data.frame的繼承性和交換機的工作方式,data.table依賴或導入有些棘手。搜索「[data.table] cedta」以獲取更多信息。 – 2013-06-09 18:40:59

相關問題