Эта функция сама по себе работает правильно. При выполнении в R Studio он открывает функцию View
и окно правильно помечается как mtcars
(не df
):
#' Print a data frame appropriate to output type
#'
#' @param df the data frame to be printed
#'
#' @return either kable (in PDF) or datatable (in HTML) output
#' @importFrom DT datatable
#' @importFrom knitr kable
#' @importFrom utils View
#' @importFrom rlang enexprs
#' @export
#'
#' @examples # sp_print_df(df)
sp_print_df <- function(df){
df_name <- enexprs(df)
if (knitr::is_latex_output()) {
knitr::kable(df)(df)
}
else if (knitr::is_html_output()) {
DT::datatable(df)
}
else {
View(df, title = as.character(df_name[[1]]))
}
}
library(rlang)
sp_print_df(mtcars)
У меня проблемы с включением этой функции в пакет (https://github.com/smithjd/sqlpetr).
Различные перестановки @importFrom
в файле .R
и rlang (>= 0.3.0.1),
в файле пакета DESCRIPTION
(либо как Imports:
, либо как Suggests
- все приводят к одному и тому же сообщению об ошибке, когда я devtools::check()
в R Studio:
❯ checking package dependencies ... ERROR
Namespace dependency not required: ‘rlang’
See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’
manual.
1 error ✖ | 0 warnings ✔ | 0 notes ✔
Error: R CMD check found ERRORs
Execution halted
Exited with status 1.
Пакет roxygen
соответствующим образом генерирует файл NAMESPACE, насколько я могу судить (это фрагмент):
importFrom(purrr,map_chr)
importFrom(rlang,enexprs)
importFrom(stringr,str_detect)
importFrom(tibble,as_tibble)
Чего мне не хватает в "импорте из"? Или это View
или rlang
проблема?