我是roxygen的新手,我很难看到如何使用它来快速创建一个新的/自定义包.
即我想知道最低要求是制作一个名为package1using 的包devtools,roxygen2/3以便我可以运行命令
require(package1)
fun1(20)
fun2(20)
Run Code Online (Sandbox Code Playgroud)
分别生成2000和4000个随机法线
让我们举一个最简单的例子.
如果我有两个功能fun1和fun2
fun1 <- function(x){
rnorm(100*x)
}
Run Code Online (Sandbox Code Playgroud)
和
fun2 <- function(y){
rnorm(200*y)
}
Run Code Online (Sandbox Code Playgroud)
params是数字,返回值是数字.我很确定这不是一个S3方法,让我们调用标题fun1和fun2 ....我不太确定我需要提供的其他信息.我可以将fun1和fun2放在单独的.R文件中并添加abit #'但不确定包含roxygen的所有相关要求,也不确定要包含哪些相关requiremetns以及如何使用它来创建rd文档以与包一起使用.我假设名称空间只有名称fun1和fun2?包裹描述只是一些与我有关的通用信息......以及包裹的功能?
任何一步一步的指南都会很高兴收到.
编辑:以下是我开始的距离......
我可以得到以下内容来创建一个pacakge ...但是不能使用roxygen来制作文档......
package.skeleton(list = c("fun1","fun2"), name = "package1")
Run Code Online (Sandbox Code Playgroud)
这里是我不确定我是否错过了一堆步骤......
roxygenise("package1")
Run Code Online (Sandbox Code Playgroud)
因此,当尝试安装时,我收到以下错误消息
system("R CMD INSTALL package1")
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *source* package ‘package1’ ...
** R
** preparing package for lazy loading
** help
Warning: /path.to.package/package1/man/package1-package.Rd:32: All text must be in …Run Code Online (Sandbox Code Playgroud) 我无法devtools在redhat linux服务器上的R Studio中安装软件包.出现这些错误消息:
ERROR: configuration failed for package ‘RCurl’
* removing ‘/home/xx/R/x86_64-redhat-linux-gnu-library/3.0/RCurl’
Warning in install.packages :
installation of package ‘RCurl’ had non-zero exit status
ERROR: dependency ‘RCurl’ is not available for package ‘httr’
* removing ‘/home/xx/R/x86_64-redhat-linux-gnu-library/3.0/httr’
Warning in install.packages :
installation of package ‘httr’ had non-zero exit status
ERROR: dependencies ‘httr’, ‘RCurl’ are not available for package ‘devtools’
Run Code Online (Sandbox Code Playgroud)
我也无法安装RCurl包.我也尝试过安装这些libcurl库:
sudo yum install libcurl4-openssl-dev
sudo yum install libcurl4-gnutls-dev
Run Code Online (Sandbox Code Playgroud)
但该系统表示没有可用的此类软件包.
有没有其他方法来安装devtools包?或者我该如何解决Rcurl安装问题?
我正试图devtools::install_github第一次安装一个包
l@np350v5c:~$ R --vanilla
> library(devtools)
Attaching package: ‘devtools’
The following objects are masked from ‘package:utils’:
?, help
The following object is masked from ‘package:base’:
system.file
> search()
[1] ".GlobalEnv" "package:devtools" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
Run Code Online (Sandbox Code Playgroud)
但是,例如
> install_github("devtools")
Installing github repo devtools/master from hadley
Downloading master.zip from https://github.com/hadley/devtools/archive/master.zip
Errore in function (type, msg, asError = TRUE) : <not set>
Run Code Online (Sandbox Code Playgroud)
输出traceback()是
> traceback()
12: fun(structure(list(message = msg, call = sys.call()), …Run Code Online (Sandbox Code Playgroud) 要生成R文档文件(.Rd),我使用Rt 3.0.2,Linux 3.11,devtools 1.5,roxygen2 4.0.1的软件包RStudio/Document选项.
我想在文档文件中描述函数的多个参数,例如在此示例中:
\arguments{
\item{arg1, arg2}{Description}
}
Run Code Online (Sandbox Code Playgroud)
在这里,参数arg1和arg2由一个空格字符分割.这导致HTML版本中的自动换行符.
使用RStudio/Document选项,两个参数之间的空格将第二个参数放在"描述"部分中,例如:
#' @param arg1, arg2 Description
Run Code Online (Sandbox Code Playgroud)
会变成
\arguments{
\item{arg1,}{arg2 Description}
}
Run Code Online (Sandbox Code Playgroud)
我想出将两个参数保留在'参数'部分内的唯一方法是不按空格分割,例如:
#' @param arg1,arg2 Description
Run Code Online (Sandbox Code Playgroud)
会变成
\arguments{
\item{arg1,arg2}{Description}
}
Run Code Online (Sandbox Code Playgroud)
这是不希望的,因为有了更多的参数,带有参数的'column'会占用大量空间.我试图逃避这个空间,\或者\\包括所有的争论\code{...},但没有一个按预期工作.
有没有办法在我的目标中创建输出?也许是一些引入空间的逃脱角色?
谢谢.
斯文
我R在centOS下安装软件包失败了.我正在尝试安装devtools软件包以便rstudio/DT使用该install_github函数安装软件包,但是当我尝试安装devtools软件包时,我得到以下错误:git2r软件包无法安装.有人可能知道我应该怎么做才能成功执行安装?
我的代码和错误sessionInfo如下:
also installing the dependency ‘git2r’
próbowanie adresu URL 'http://r.meteo.uni.wroc.pl/src/contrib/git2r_0.10.1.tar.gz'
Content type 'application/x-gzip' length 1014817 bytes (991 Kb)
otwarty adres URL
==================================================
downloaded 991 Kb
próbowanie adresu URL 'http://r.meteo.uni.wroc.pl/src/contrib/devtools_1.8.0.tar.gz'
Content type 'application/x-gzip' length 141487 bytes (138 Kb)
otwarty adres URL
==================================================
downloaded 138 Kb
* installing *source* package ‘git2r’ ...
** pakiet ‘git2r’ zosta? pomy?lnie rozpakowany oraz sumy MD5 zosta?y sprawdzone
checking build system type... …Run Code Online (Sandbox Code Playgroud) 我试图在R包中包含一个(有些)大数据集.在Rstudio检查期间我一直收到警告说我可以通过压缩来节省空间:
* checking data for ASCII and uncompressed saves ... WARNING
Note: significantly better compression could be obtained
by using R CMD build --resave-data
old_size new_size compress
slp.rda 499Kb 310Kb bzip2
sst.rda 1.3Mb 977Kb xz
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加-- resave-data到RStudio的"配置Buid工具"无效.
R包devtools似乎是使用该install_github()函数直接从其github存储库安装R包的首选方法.
这样做时,不仅安装了已解决的github-package,还安装了直接的CRAN依赖项,即包的Description/Namespace文件中定义的Depends和Imports.
但是,我想知道是否需要间接需要的包,例如Depends和Imports包所需的包,也会自动安装.
例如,在安装DT包通过时install_github("rstudio/DT"),htmltools也会安装(设置dependencies=TRUE)Imports包,但不Rcpp包括前者所依赖的包(R 3.3.1,Rtools34,Win10,x64).这些包需要以另一种方式安装吗?
我看到我最近的包构建不再创建手册,即使我没有在构建设置中添加"--no-manual".之前我没有遇到过这个问题 - 我最近更新了devtools和roxygen2.
我错过了什么吗?
以下是我设置项目选项的方法:
我正在编写一个使用外部数据的函数,如下所示:首先,它检查数据是否在data/文件夹中,如果不在,则创建data/文件夹,然后从github下载文件;如果数据已经在data/文件夹中,它将对其进行读取并执行计算。
问题是,当我运行时:
devtools::check()
Run Code Online (Sandbox Code Playgroud)
它返回:
Error: 'data' is not an exported object from 'namespace:my_package'
Run Code Online (Sandbox Code Playgroud)
我应该手动穿上东西NAMESPACE吗?
一个例子:
my_function <- function(x){
if(file.exists("data/data.csv")){
my_function_calculation(x = x)
} else {
print("Downloading source data...")
require(RCurl)
url_base <-
getURL("https://raw.githubusercontent.com/my_repository/data.csv")
dir.create(paste0(getwd(),"/data"))
write.table(url_base,"data/data.csv", sep = ",", quote = FALSE)
my_function_calculation(x = x)
}
}
my_function_calculation <- function(x = x){
data <- NULL
data <- suppressMessages(fread("data/data.csv"))
#Here, I use data...
return(data)
}
Run Code Online (Sandbox Code Playgroud) 我想知道我当前的库中有多少个软件包是从GitHub安装的,但是找不到解决方法
# The number of installed packages in my library
length(.packages(all.available=TRUE))
[1] 145
Run Code Online (Sandbox Code Playgroud)
这篇R-bloggers帖子显示了软件包的版本,但未显示从https://www.r-bloggers.com/list-of-user-installed-r-packages-and-their-versions/安装的位置。
ip <- as.data.frame(installed.packages()[, c(1, 3:4)])
rownames(ip) <- NULL
ip <- ip[is.na(ip$Priority), 1:2, drop=FALSE]
print(ip, row.names=FALSE)
Package Version
abind 1.4-5
acepack 1.4.1
ade4 1.7-10
albersusa 0.3.0
AnnotationDbi 1.40.0
ansistrings 1.0.0
ape 5.0
aqp 1.15
ash 1.0-15
assertthat 0.2.0
astsa 1.8
ATmet 1.2
automap 1.0-14
backports 1.1.2
base64 2.0
base64enc 0.1-3
bazar 1.0.6
BBmisc 1.11
beeswarm 0.2.3
BH 1.66.0-1
Run Code Online (Sandbox Code Playgroud)
我以为我可以加载所有软件包,然后运行devtools::session_info()以查找我想要的东西
https://www.r-bloggers.com/loading-all-installed-r-packages/
lapply(.packages(all.available=TRUE),
function(x) library(x, …Run Code Online (Sandbox Code Playgroud)