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