在构建一个简单的测试包以隔离此问题后,我在运行时收到以下警告Rcmd.exe INSTALL --nomultiarch --with-keep.source simpleTest:
* installing to library 'C:/Users/user/Documents/R-dev'
* installing *source* package 'simpleTest' ...
** R
** preparing package for lazy loading
** help
*** installing help indices
converting help for package 'simpleTest'
finding HTML links ... hello html
Rd warning: C:/user/RPackages/simpleTest/man/hello.Rd:11: missing file link 'transmute'
done
** building package indices
** testing if installed package can be loaded
* DONE (simpleTest)
Run Code Online (Sandbox Code Playgroud)
当您链接到指向不同名称的Rd文件的函数时,会发生此问题.举例来说,在我的SimpleTest的包,文档链接到两个dplyr::mutate()和dplyr::transmute(),这两者都记录在mutate.Rd文件.前一个链接不会导致Rd警告,而后者则会.但是,当您查看当前包的帮助页面时,这两个链接都有效.
simpleTest包的.R文件包含在下面.我运行devtools::document()然后在骨架包目录中构建包.
hello.R
#' print hello
#'
#' …Run Code Online (Sandbox Code Playgroud) 通常,install.packages(..., type = "both")如果有需要从源代码构建的包,则需要用户输入。
例如(目前,使用 R 3.5.1),install.packages(c("feather", "tidyr"), type = "both"))将从二进制安装 tidyr 并从源代码安装 Feather,只要用户在进行 Feather 安装时单击“是”。
有没有办法自动点击是,或者不需要用户通过一些选项输入 install.packages()?
注意: install.packages(..., type = "source")不需要用户输入,但它会构建所有包,在这种情况下这不是理想的行为。
我想使用 dygraphs 创建条形图和折线图,这似乎应该可以基于此处的“条形图和折线图”dygraphs 示例以及dygraphs 包中提供的dyBarChart() 自定义绘图仪。
使用自定义包装器,我可以创建一个条形图,因此我认为该代码正在运行:
library(dygraphs)
dyBarChart <- function(dygraph) {
dyPlotter(
dygraph = dygraph,
name = "BarChart",
path = system.file("examples/plotters/barchart.js",package = "dygraphs")
)
}
lungDeaths <- cbind(ldeaths, mdeaths)
dygraph(lungDeaths) %>%
dyBarChart()
Run Code Online (Sandbox Code Playgroud)
我假设我可以用dySeries()来自定义我想用线/条显示的系列,但以下都不起作用。它们不会出错,但不会创建任何内容。我也不确定这是否"linePlotter"是正确的绘图仪名称,但无论哪种方式,我都需要一点帮助。
# doesn't work
dygraph(lungDeaths) %>%
dyBarChart() %>%
dySeries("ldeaths", plotter = "linePlotter")
# also doesn't work:
dygraph(lungDeaths) %>%
dySeries("ldeaths", plotter = "dyBarChart") %>%
dySeries("mdeaths", color = "blue")
Run Code Online (Sandbox Code Playgroud)
谢谢。
我的问题是如何扩展rbind()子类data.frame?我似乎无法正确扩展rbind()以使用即使是非常简单的子类。以下示例演示了该问题:
子类和方法定义:
new_df2 <- function(x, ...)
{
stopifnot(is.data.frame(x))
structure(x, class = c("df2", "data.frame"), author = "some user")
}
rbind.df2 <- function(..., deparse.level = 1)
{
NextMethod()
}
Run Code Online (Sandbox Code Playgroud)
我意识到rbind()在这种情况下扩展是不必要的,但我的宏伟计划是在我的子类上使用rbind.data.frame(),然后向其结果添加一些额外的检查/属性。
如果您调用以下命令,您会收到错误:Error in NextMethod() : generic function not specified。
不起作用:
t1 <- data.frame(a = 1:12, b = month.abb)
t2 <- new_df2(t1)
rbind(t2, t2)
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用NextMethod(generic = "rbind"),但在这种情况下,您会收到此错误:Error in NextMethod(generic = "rbind") : wrong value for .Method。
也不起作用:
rbind.df2 …Run Code Online (Sandbox Code Playgroud)