我正在使用devtools构建R包,并且有些功能并非设计为最终用户可见.但是,由于这些函数涉及调用C代码.Call,因此我必须@useDynLib在函数上面编写自动生成.Rd文件.这样,当我构建软件包时,即使我没有包含@export那些函数,它们仍会出现在帮助文档中......有没有办法抑制这些函数,即使它们已被记录?谢谢!
我正在开发一个具有该功能的包forecast.myclass.我希望该功能与forecast包很好地协同工作.即,当forecast加载包时,代码forecast(object)应该forecast.myclass从我的包调用.
由于我只需forecast要从包中通用定义forecast,并且我不使用包中的任何其他功能,forecast我不愿意将其包含在Depends中.所以我通过以下方式在我的包中定义泛型:
##'
##' @export
forecast <- function(object,...) UseMethod("forecast")
##' @rdname forecast.midas_r
##' @method forecast midas_r
##' @export
forecast.midas_r <- function(object,newdata=NULL,method=c("static","dynamic"),insample=get_estimation_sample(object),...) {
Run Code Online (Sandbox Code Playgroud)
现在,当forecast未加载包时,一切都按预期工作.但是,当我打开包forecast,然后forecast.midas_r不叫,做的时候forecast(object),其中object的类midas_r.我该如何解决这个问题?
强文本我在安装包时不断遇到问题tidyverse,这使我无法执行许多文本处理任务。这个问题与 2017 年以来许多以前的线程中提到的问题相同,当我输入library(tidyverse)或尝试打开其他相关包时,他们总是说它需要 0.2.1 版本的vctrs. 我尝试过使用remote下载或下载其他临时版本但无济于事。有人可以帮我解决这个问题吗?
我正在使用最新版本的 R(版本 3.6.1),在 Rstudio 1.2.5033 上运行。我还更新了我的vctrs包。
install.packages("tidyverse")\ndevtools::install_github("tidyverse/tidyverse")\nlibrary(tidyverse)\nError: package or namespace load failed for \xe2\x80\x98tidyverse\xe2\x80\x99 in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]):\n namespace \xe2\x80\x98vctrs\xe2\x80\x99 0.2.0 is already loaded, but >= 0.2.1 is required\nIn addition: Warning message:\npackage \xe2\x80\x98tidyverse\xe2\x80\x99 was built under R version 3.6.2 \n\n\nlibrary(devtools)\ndevtools::install_github("tidyverse/tidyverse")\nlibrary(tidyverse)\nError: package or namespace load failed for \xe2\x80\x98tidyverse\xe2\x80\x99 in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]):\n namespace \xe2\x80\x98vctrs\xe2\x80\x99 0.2.0 is …Run Code Online (Sandbox Code Playgroud) 不知何故,devtools-2.9.2 目录中不存在“build”目录。不过,只有在 iPhone SE 第二代 iOS 14.5 模拟器上运行构建时才会出现此异常,这很奇怪。这是在我的 Mac 意外强制重启后开始的。但我无法直接连接这个事件。
发生了什么以及我如何构建这些东西或摆脱异常?其原因又是什么呢?
flutter doctor -v没有发现问题
我试图让R认识到我已经安装了Rtools.exe.我已经尝试在几个不同的位置安装它.但是,每当我重新启动R并加载时,devtools我都会得到同样的错误:
> library(devtools)
WARNING: Rtools is required to build R packages, but is not currently installed.
Please download and install Rtools 3.0 from http://cran.r-project.org/bin/windows
/Rtools/ and then run find_rtools().
Run Code Online (Sandbox Code Playgroud)
当然,每当我尝试该函数时,find_rtools()我都会收到相同的错误消息.我已经完成了尝试通过帮助文件来解决这个问题,因为帮助文件devtools没有提供太多帮助.我已尝试在返回的几个位置安装,get_path()但问题仍然存在.
仅供参考,目前我的R安装在D:/R.
有没有其他人有这个问题,更重要的是,任何人都可以帮助我吗?如果这是重复,我很抱歉,我试图尽可能多地包含相关细节,如果您需要任何澄清,请告诉我.
谢谢,尼克
如何正确指定rd文件的编码?我正在尝试将以下帮助文件添加到我的包中:
\name{dummy}
\encoding{ISO-8859-2}
\alias{dummy}
\title{P?íšern? žlu?ou?ký k?? úp?l ?ábelské ódy.}
\usage{
dummy(x)
}
\arguments{
\item{x}{P?íšern? žlu?ou?ký k?? úp?l ?ábelské
ódy.P?íšern? žlu?ou?ký k?? úp?l ?ábelské ódy.}
}
\description{
P?íšern? žlu?ou?ký k?? úp?l ?ábelské ódy.P?íšern?
žlu?ou?ký k?? úp?l ?ábelské ódy.
}
\examples{
dummy(x="P?íšern? žlu?ou?ký k?? úp?l ?ábelské ódy.P?íšern? žlu?ou?ký k?? úp?l ?ábelské ódy.")
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试安装我的包(使用installfrom devtools)时,我得到:
Warning messages:
1: In fetch(key) : internal error -3 in R_decompress1
2: In strsplit(msg, "\n") : input string 1 is invalid in this …Run Code Online (Sandbox Code Playgroud) 我有一个data.table:
library(data.table)
mydt <- data.table(index = 1:10)
Run Code Online (Sandbox Code Playgroud)
当我在全局环境中尝试它时,我正在使用它,但是当我在调试器中或在包测试中使用它时.
问题是我无法以标准方式对其进行子集化.
Browse[2]> mydt[,index]
Error in `[.data.frame`(x, i, j) : object 'index' not found
Browse[2]> mydt[,list(index)]
Error in `[.data.frame`(x, i, j) : object 'index' not found
Run Code Online (Sandbox Code Playgroud)
这是一个可重现的示例,我在其中创建一个包,然后在评估调用的函数时得到错误myfunction:
library(devtools)
setwd(tempdir())
# make dummy package called foo
create("foo")
setwd("foo")
# add data.table as a package dependency
a <- readLines("DESCRIPTION")
depends.idx <- grepl("Depends", a)
a[depends.idx] <- paste0(a[depends.idx], ", data.table")
writeLines(a, "DESCRIPTION")
# create a dummy function
writeLines("myfunction <- function() {a <- data.table(b=1); return(a[,b])}",
"R/foo.R") …Run Code Online (Sandbox Code Playgroud) 使用roxygen2的自动记录功能,虽然它很棒且有用,但它对roxygen2包版本的每次更改都很烦人.它通过在每个文件中放入roxygen2版本来更新我的所有文档文件.见下文.
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/src.R
Run Code Online (Sandbox Code Playgroud)
这些更改显然不会影响代码/包,但会通过在源版本控制过程中添加噪声来影响源控件版本控制.
可以在某个地方关掉吗?
当我尝试调用install_github时,我收到以下错误(不仅是这个包,而是所有github包):
> install_github('ramnathv/slidify')
Downloading github repo ramnathv/slidify@master
Error in curl::curl_fetch_memory(url, handle = handle) :
Problem with the SSL CA cert (path? access rights?)
Run Code Online (Sandbox Code Playgroud)
但是,如果我直接使用RCurl来访问带有ssl的github,我不会遇到任何问题:
> x <- getBinaryURL(
url='https://github.com/ramnathv/slidify/archive/master.zip',
followlocation=1L
)
Run Code Online (Sandbox Code Playgroud)
无错误地工作,因此RCurl可以正确验证SSL证书并下载存档文件.
> sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 8 (jessie)
locale:
[1] LC_CTYPE=en_US.utf8 LC_NUMERIC=C
[3] LC_TIME=en_US.utf8 LC_COLLATE=en_US.utf8
[5] LC_MONETARY=en_US.utf8 LC_MESSAGES=en_US.utf8
[7] LC_PAPER=en_US.utf8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.utf8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages: …Run Code Online (Sandbox Code Playgroud) 我希望记录一个R函数,并在多个参数名称匹配时从其他函数继承单个参数文档.例如,假设我有以下2个功能.
#' Function 1.
#'
#' Description of function 1.
#'
#' @param x XYZ
#' @param y ZYX
#' @return Numeric
fun1 <- function(x, y) {value <- 1}
#' Function 2.
#'
#' Description of function 2.
#'
#' @param x ABC
#' @param y CBA
#' @return Numeric
fun2 <- function(x, y) {value <- 2}
Run Code Online (Sandbox Code Playgroud)
我现在想要创建第三个函数,它继承fun1的参数x和fun2的参数y.以下不起作用:
#' Function 3.
#'
#' Description of function 3.
#'
#' @inherit fun1 params x
#' @inherit fun2 params y
fun3 <- …Run Code Online (Sandbox Code Playgroud)