使用@importFrom pkg fun导入函数时出现问题

使用@importFrom pkg fun导入函数时出现问题,r,R,我目前正试图开发我的第一个R包,但遇到了以下问题 我有一个描述文件,其中所有需要的包都列在导入项下,就像哈德利·威克姆在他的书中建议的那样。我正在使用dplyr select的@importFrom加载函数,供内部使用 通过运行devtools::document()我得到一个错误: 选择错误(路径为原始路径,住户id=H\U id,人员id=p\U id,: 找不到函数“选择” 如果有人能帮我理解我的错误,那就太好了 提前谢谢 编辑: 描述 Package: first_package Tit

我目前正试图开发我的第一个R包,但遇到了以下问题

我有一个描述文件,其中所有需要的包都列在导入项下,就像哈德利·威克姆在他的书中建议的那样。我正在使用dplyr select的
@importFrom加载函数,供内部使用

通过运行
devtools::document()
我得到一个错误:

选择错误(路径为原始路径,住户id=H\U id,人员id=p\U id,: 找不到函数“选择”

如果有人能帮我理解我的错误,那就太好了

提前谢谢

编辑:

描述

Package: first_package
Title: first package
Version: 0.0.0.9000
Description: first package
Depends:
    R (>= 3.5.2)
Imports:
    foreign (>= 0.8.71),
    plyr (>= 1.8.4),
    dplyr (>= 0.7.7),
    leaflet (>= 2.0.2),
    sf (>= 0.7.1),
    rgeos (>= 0.4.2),
    geosphere (>= 1.5.7),
    sp (>= 1.3.1),
    rgdal (>= 1.3.6),
    mapview (>= 2.6.0),
    lwgeom (>= 0.1.6),
    roxygen2
License: BSD 2-Clause + file LICENSE
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.1.0

功能:

get_clear_df_paths <- function(paths_original) {
  clean_paths <- select(paths_original,
                        household_id = H_ID,
                        person_id = P_ID,
                        household_person_id = HP_ID,
                        weekday = ST_WOTAG,
                        month = ST_MONAT,
                        holiday = feiertag,
                        season = saison,
                        regular_job_related_path = W_RBW,
                        path_purpose = W_ZWECK,
                        starting_point = W_SO2,
                        start_time_hour = W_SZS,
                        start_time_min = W_SZM,
                        arrival_next_day = W_FOLGETAG,
                        arrival_time_hour = W_AZS,
                        arrival_time_min = W_AZM,
                        path_length = wegkm,
                        path_length_imp = wegkm_imp,
                        path_duration_min = wegmin,
                        path_duration_min_imp = wegmin_imp,
                        main_vehicle = hvm,
                        car_driver = pkw_fmf,
                        vehicle_car = W_VM_G,
                        vehicle_carsharing = W_VM_H,
                        district = stt_mun)
}
名称空间

# Generated by roxygen2: do not edit by hand

importFrom(dplyr,select)
importFrom(foreign,read.spss)
importFrom(plyr,revalue)
与相关代码段的公共要点链接:


我不喜欢添加这一点,因为它“不是一个答案”,并将很快更新它以包含答案或将其删除。但是,我相信这可能有助于证明OP的基本方法应该有效,因此我创建了一个导入明显问题函数的最小示例包

首先,我设置了包结构:

库(devtools)
创建_包(“funImport”,rstudio=FALSE)
使用_包(“dplyr”)
使用\u gpl3\u许可证(“X”)
然后,我在
R/
中添加了一个文件,其中包含以下内容:

选择包装器 #' #“@param.data A tbl #“@param…要选择的变量名 #' #“@返回所选变量 #“@出口
选择创建了一个虚拟包进行测试,这样就可以了。您需要按照如下所示记录您的函数。另外,请为函数中的某些变量提供全局绑定

    #' Some paths
    #' @description some paths
    #' @param paths_original Some path
    #' @importFrom dplyr select
    #' @export 
    get_clear_df_paths <- function(paths_original) {
      clean_paths <- select(paths_original,
                            household_id = H_ID,
                            person_id = P_ID,
                            household_person_id = HP_ID,
                            weekday = ST_WOTAG,
                            month = ST_MONAT,
                            holiday = feiertag,
                            season = saison,
                            regular_job_related_path = W_RBW,
                            path_purpose = W_ZWECK,
                            starting_point = W_SO2,
                            start_time_hour = W_SZS,
                            start_time_min = W_SZM,
                            arrival_next_day = W_FOLGETAG,
                            arrival_time_hour = W_AZS,
                            arrival_time_min = W_AZM,
                            path_length = wegkm,
                            path_length_imp = wegkm_imp,
                            path_duration_min = wegmin,
                            path_duration_min_imp = wegmin_imp,
                            main_vehicle = hvm,
                            car_driver = pkw_fmf,
                            vehicle_car = W_VM_G,
                                vehicle_carsharing = W_VM_H,
                                district = stt_mun)
    }
结果:忽略警告(为了回答这个问题)。至少错误不会出现

-- R CMD check results ---------------------------------------------- SODummypkg 0.0.0.9000 ----
Duration: 1m 10.7s

> checking DESCRIPTION meta-information ... WARNING
  Dependence on R version '3.5.3' not with patchlevel 0

0 errors √ | 1 warning x | 0 notes √

为什么不直接使用
dplyr::select
?你能复制粘贴你的代码并将其添加到问题中吗?还可以添加一个GitHub或其他链接到函数中吗?@NelsonGon的最新评论是:这是不可复制的。如果我们看不到你的代码,我们就无法告诉你问题出在哪里。这似乎……很奇怪。我有一个很容易模拟的最小值示例表明这种方法应该有效。我必须想象有一些我们没有看到的外部因素。你有什么版本的R、devtools、roxygen2和dplyr?我添加了OP的要点链接…我还没有任何函数的文档。但在这一点上,在我看来,它有点不相关,因为我认为我缺少了som这是相关的,因为我对语言和软件包开发是新手…
use\u x
似乎已经被移动到
usethis
@NelsonGon当然,但是如果你附加
devtools
,它也附加了
usethis
@NelsonGon请看这里:不确定如何使用它来解决我的问题…如果我遗漏了什么,很抱歉。@Bagrat Try to记录此处所示的一个函数。同时记录所有函数。
library(devtools)
library(roxygen2)
create("SODummypkg")
document("SODummypkg")
check("SODummypkg")
-- R CMD check results ---------------------------------------------- SODummypkg 0.0.0.9000 ----
Duration: 1m 10.7s

> checking DESCRIPTION meta-information ... WARNING
  Dependence on R version '3.5.3' not with patchlevel 0

0 errors √ | 1 warning x | 0 notes √