gpt4 book ai didi

r - 创建具有依赖项的 R 包

转载 作者:行者123 更新时间:2023-12-04 10:26:16 27 4
gpt4 key购买 nike

我正在尝试编写我的第一个 R 包。包中的函数依赖于 RCurl 包中的 getURL() 函数。我遵循了以下教程:
http://r-pkgs.had.co.nz/
http://hilaryparker.com/2014/04/29/writing-an-r-package-from-scratch/

我安装了 RTools、devtools 和 roxygen2 来编写文档和构建包。

我的包的名称是“waterml”。在我的包中,我有一个文件夹 R,其中包含 3 个文件 GetSites.R、GetVariables.R、GetValues.R。每个文件都有一个功能:

#' GetSites
#' @import XML
#' @importFrom RCurl getURL
#' This function gets the table of sites from the WaterML web service
#' @param server The URL of the web service ending with .asmx,
#' for example: http://worldwater.byu.edu/interactive/rushvalley/services/cuahsi_1_1.asmx
#' @keywords waterml
#' @export
#' @examples
#' GetSites("http://worldwater.byu.edu/interactive/rushvalley/services/cuahsi_1_1.asmx")

GetSites <- function(server) {
sites_url <- paste(server, "/GetSitesObject", sep="")
text <- RCurl::getURL(sites_url)
doc <- xmlRoot(xmlTreeParse(text, getDTD=FALSE, useInternalNodes = TRUE))
return(doc)
}

现在,我尝试构建包:
library(devtools)
document()

document() 步骤完成没有错误。现在我运行:
setwd("..")
install("waterml")

但我收到错误:
* installing *source* package 'waterml' ...
** R
** preparing package for lazy loading
Error : object 'function' is not exported by 'namespace:RCurl'
ERROR: lazy loading failed for package 'waterml'
* removing 'C:/Program Files/R/R-3.1.2/library/waterml'

当我检查我的 NAMESPACE 文件时,它包含一些奇怪的行:
# Generated by roxygen2 (4.0.2.9000): do not edit by hand

export(GetSites)
export(GetValues)
export(GetVariables)
import(RCurl)
import(XML)
importFrom(RCurl,"function")
importFrom(RCurl,This)
importFrom(RCurl,WaterML)
importFrom(RCurl,data)
importFrom(RCurl,from)
importFrom(RCurl,getURL)
importFrom(RCurl,gets)
importFrom(RCurl,of)
importFrom(RCurl,series)
importFrom(RCurl,service)
importFrom(RCurl,sites)
importFrom(RCurl,table)
importFrom(RCurl,the)
importFrom(RCurl,time)
importFrom(RCurl,values)
importFrom(RCurl,variables)
importFrom(RCurl,web)

我认为错误在声明中:
importFrom(RCurl, "function")

任何想法可能是什么问题?我是否正确使用了函数文档中的 @importFrom?

最佳答案

改变:

#' GetSites
#' @import XML
#' @importFrom RCurl getURL
#' This function gets the table of sites from the WaterML web service
#' @param server The URL of the web service ending with .asmx,

到:
#' GetSites
#'
#' This function gets the table of sites from the WaterML web service
#'
#' @import XML
#' @importFrom RCurl getURL
#' @param server The URL of the web service ending with .asmx,
roxygen2正在阅读以下行 @importFrom并假设每个单词都是您要导入的函数。

关于r - 创建具有依赖项的 R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27364610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com