2016-11-30 5 views
2

Как правильно добавить import(data.table) в файл NAMESPACE с помощью devtools?R: Добавлен импорт (data.table) в NAMESPACE автоматически с помощью devtools

Вообще, если мои пакеты используют data.table я просто пишу это вручную, но я не могу использовать @export и devtools::document создать файл NAMESPACE правильно, так как он либо перезаписывает дополнение я сделал, или не обновлять файл вообще.

Кроме того, он говорит, что не редактировать его вручную ...

Благодаря


Примеры package/R/function.R код

#' @export 
#' @import data.table 
test_data_table = function(dt) { 
    dt[, a := 3] 
} 

пример вызова

> test_data_table 
function(dt) { 
    dt[, a := 3] 
} 
<environment: namespace:package> 

> test_data_table(dt) 
Show Traceback 

Rerun with Debug 
Error in `[.data.frame`(x, i, j) : could not find function ":=" 

ответ

4

Вы, вероятно, не должны использовать import(*), если только вы не действительно нужен каждый экспортируемый объект из пакета. Вместо этого используйте importFrom(pkg, obj1, obj2, ...) для импорта только тех объектов, которые вам нужны.

С Пишущего R Extensions ручными, S1.5.1:

Using importFrom selectively rather than import is good practice and recommended notably when importing from packages with more than a dozen exports.

Тем не менее, если вы сделать необходимости импортировать все, использовать #' @import data.table.

+2

'data.table' на самом деле является одним из немногих пакетов, где я буду« импортировать »все. – Roland

+0

Ну, я думаю, проблема в том, что это синтаксис. Я понимаю, что я использую 'importFrom (data.table, data.table. [)'? –

+1

@AkhilNair Метод «[.data.table», но вы не можете импортировать его, потому что он не экспортируется. Я сомневаюсь, что вы можете импортировать из data.table выборочно и по-прежнему использовать data.table. Есть некоторые функции, которые вы можете выборочно импортировать из data.table, но AFAIK не те, которые создают основную функциональность. – Roland

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

  • Нет связанных вопросов^_^