У меня есть функция удаления пустых столбцов из таблицы data.table и включается это в пакет.
Как-то это работает, когда я загружаю функцию, но не тогда, когда я вызываю ее из пакета. Вопрос: почему эта функция не запускается, когда я вызываю ее из пакета?
В любой из функций пакета нет необходимости (data.table) или библиотеки (data.table). Файл ОПИСАНИЯ содержит: Импорт: data.table. Таким образом Использование пакета data.table внутри моего собственного пакета выполняется.
library(data.table)
df = data.table(a = c(1,2,3), b = c(NA, NA, NA), c = c(4,5,6))
library(cr360)
remove.emptycols(df) # from package
Error in .subset(x, j) : invalid subscript type 'list'
# now open function from mypackage and run again:
# source("./mypackage/R/fun_remove_emptycols.R")
remove.emptycols(df)
a c
1: 1 4
2: 2 5
3: 3 6
функция:
#' Remove empty columns
#'
#' Counts the number of NA values in the columns and counts the number of rows.
#' @param df
#' @return df data.table with empty columns removed.
#' @export
#'
#'
remove.emptycols = function(df) {
count.colNA = df[,lapply(.SD, function(x) sum(is.na(x)))]
df = df[,which(count.colNA != nrow(df)),with = FALSE]
return(df)
}