mat*_*fee 6 cygwin r roxygen roxygen2
我有一个R的软件包我一直在Linux下开发,而且我在Windows下测试它的时候已经到了.
文档是使用roxygen完成的,我正在使用cygwin来构建软件包.
问题是,当我roxygenise('test-package'),roxygen \usage将文档的部分截断为一个字符.它对一些但不是我的所有功能都这样做,我无法弄清楚这种模式.
roxygenise('test-package')在Linux或Windows下运行相同的命令(即从R提示符)时不会发生这种情况- 只是在Windows下的Cygwin(使用R devtools +来自Windows的命令提示符对我来说不是一个选项 - 它是Makefile的一个大项目的一部分等等).
在所有情况下,我使用roxygen v2.2.2.
对于具有默认参数的任何函数,都会出现这种情况.
我把它归结为一个可重复的例子,尽可能地减少以解决问题:
来自R:
# this function used to trim strings, but I've stripped it right down
# to eliminate it as a cause of the problem
trim <- function(x='asdf')
{
return( x )
}
package.skeleton('test')
Run Code Online (Sandbox Code Playgroud)修改trim.R(在test/R中)并将以下roxygen添加到顶部,因此文件如下所示:
#' trim white spaces from a string
#'
#' @param x string or vector of strings to trim
#' @return x trimmed.
#' @export
trim <-
function(x='asdf')
{
return( x )
}
Run Code Online (Sandbox Code Playgroud)运行R并生成文档:
library(roxygen2)
roxygenise('test')
Run Code Online (Sandbox Code Playgroud)查看生成的trim.Rd文件(在test/man中):
\name{trim}
\alias{trim}
\title{trim white spaces from a string}
\usage{
t
}
\arguments{
... # rest of .Rd file - nothing wrong here.
Run Code Online (Sandbox Code Playgroud)看看怎么样\usage{t}?
当然,当一个人运行时R CMD check会得到一个错误,关于记录的参数没有出现在\usage,但那是因为\usage被截断了.
有谁知道为什么会发生这种情况以及如何解决这个问题?也许某些东西roxygen2依赖于适用于Mac,Windows和Linux但不适用于Cygwin的东西?
欢呼(我一直在撕扯我的头发).
我一直在使用从Cygwin的软件包管理器安装的R,而不是我的Windows R(即其中的一个C:/Program Files/R/R-2.14.2/bin) - 我没有意识到Windows R可以在Cygwin下工作.
如果我在Cygwin中使用Windows R,则该bug就会消失.如果我在Cygwin中使用Cygwin R,则会出现错误.
我只能假设这是与Cygwin R相关的一些错误,而不是roxygen2.
现在我将使用在cygwin中使用Windows R的解决方法(事实上,现在我知道我可以做到这一点,无论如何都不需要Cygwin R!).
这不是修复,而是解决方法。
我一直在使用从 Cygwin 的包管理器安装的 R,而不是我的 Windows R(即 C:/Program Files/R/R-2.14.2/bin 中的那个) - 我没有意识到 Windows R 可以在西格温。
如果我在 Cygwin 中使用 Windows R,该错误就会消失。如果我在 Cygwin 中使用 Cygwin R,则存在该错误。
我只能假设这是与 Cygwin R 相关的错误,而不是 roxygen2。
现在,我将使用在 cygwin 中使用 Windows R 的解决方法(事实上,现在我知道我可以做到这一点,无论如何都不需要 Cygwin R)。这仍然使我可以访问make、sed和 等Linux 命令grep,但允许我使文档正常工作。
问题仍然是 Cygwin 中的 Cygwin-R(不是 Cygwin 中的 Windows-R)导致此错误,但也许它不再与 roxygen2 相关。
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |