2013-05-03 4 views
4

У меня возникли проблемы с пакетом data.table после установки пакета из github с использованием devtools. Моя пользовательская функция (которая использует функции data.table) работает, когда я загружаю функцию локально, однако, когда я создаю собственный пакет на github и устанавливаю пакет из github, функция больше не работает.data.table & devtools: install_github error - функция работает локально, но не после установки пакета из 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 функция снова:

test_date(EDHEC) 

Это работает.

Это сводит меня с ума, и я не знаю, в чем проблема.

+3

whoa! Вы пытались выполнить проверку R CMD на сборке вашего пакета? – GSee

ответ

5

Если вы добавите Depends: data.table в свой файл DESCRIPTION, он будет «работать». Тем не менее, вы действительно должны попытаться пройти проверку R CMD - прямо сейчас, она нигде не приближается к прохождению.

+0

Добавление «Зависит: data.table» к файлу DESCRIPTION. – jfreels

+1

Возможно, вам понадобится добавить зависимости для ggplot2, plyr, RColorBrewer, reshape2, xts и всего, что вы используете. Вместо того, чтобы добавлять все эти пакеты в Depends, вы можете добавить их в Imports и использовать 'importFrom' в своем NAMESPACE для импорта только тех символов, которые вам нужны. – GSee

+1

@jfreels Для справки в будущем было уже часто задано вопросов, которые зависят от: data.table. Но, по общему признанию, data.table может быть немного сложной, чтобы зависеть или импортировать из-за наследования из data.frame и того, как работает этот коммутатор. Найдите «[data.table] cedta» для получения дополнительной информации, если необходимо. –

Смежные вопросы