有没有什么办法可以在R中的包装小插图之间加入链接?例如,我知道我可以在部分之间进行链接
# Section 1 {#section1}
My first section
# Section 2
A link to [Section 1](#section1)
Run Code Online (Sandbox Code Playgroud)
但有什么方法可以获得一个可点击的链接,将启动另一个小插图的HTML doucment?或者让代码启动它更容易?
```r
vignette("my vignette", package = "myPackage")
```
Run Code Online (Sandbox Code Playgroud)
注意我使用Rmarkdown和生成了所有的晕影knitr.
我使用了生成我的博客,blogdown但是当我尝试将其提交给R-Bloggers时,我不接受它,因为我的Feed返回以下错误:
This XML document is invalid, likely due to invalid characters.
XML error: Undeclared entity error at line 6, column 35
Run Code Online (Sandbox Code Playgroud)
显然,我网站的Feed不包含完整的RSS内容.如何让它保存所有内容?
让我们举一个简单的例子
data <- data.table::data.table(a = 1:10, b = 2:11)
j <- quote(c("c") := list(a + 1))
data[, j, env = list(j = j)][]
# a b c
# <int> <int> <num>
# 1: 1 2 2
# 2: 2 3 3
# 3: 3 4 4
# 4: 4 5 5
# 5: 5 6 6
Run Code Online (Sandbox Code Playgroud)
上面的代码有效并产生正确的输出。但是,如果我将其放入函数中,我会得到非常不同的输出。
data <- data.table::data.table(a = 1:5, b = 2:6)
test <- function(data, ...) {
dots <- eval(substitute(alist(...)))
j <- call(":=", call("c", names(dots)), unname(dots))
print(j) …Run Code Online (Sandbox Code Playgroud) 我的问题与这个问题有关.我希望在我的推荐之后包括我的附录,所以我after_body在我的yaml中使用标签,但是我需要能够使用knit我的appendix.Rmd文件.我尝试过以下方法:
after_body: "`r knitr::knit('appendix.Rmd')`"
Run Code Online (Sandbox Code Playgroud)
但是这会尝试appendix.Rmd在实际报告之前编织文件,因此失败,因为它没有内存中所需的库或对象.
我最近更新到R 3.1.3,我正在使用RStudio和packrat.我正在尝试使用RStudio在构建的"构建和重新加载"工具中重新构建我的包,但它不起作用.我一直收到以下错误:
Updating standaRd documentation
Loading standaRd
Error in (function (dep_name, dep_ver = NA, dep_compare = NA) :
Dependency package ggplot2 not available.
Calls: suppressPackageStartupMessages ... <Anonymous> -> load_all -> load_depends -> mapply -> <Anonymous>
Execution halted
Exited with status 1.
Run Code Online (Sandbox Code Playgroud)
问题是,我已经ggplot2在所有地方安装了包括我的本地库和我的包装库,用于R 3.1.2和R 3.1.3的这个项目.我试过加载它们无济于事.
另外,使用devtools::build()和devtools::document()都工作,所以我假设这是一个RStudio问题?
注意:我使用的是RStudio版本0.99.235.
编辑:我也看不到我的包的任何文档,它似乎不在我的packrat库中.
第二次编辑:我已经卸载了R 3.1.3并恢复到R 3.1.2并且我仍然遇到同样的问题.
第三次编辑:这些是我的依赖:
Depends:
R (>= 3.1.2),
ggplot2 (>= 1.0.0),
grid
Run Code Online (Sandbox Code Playgroud) 假设我有一个简单的抽象R6类。
myClass <- R6::R6Class(
classname = "myClass",
public = list(
save = function(path) {
saveRDS(self, path)
},
load = function(path) {
object <- readRDS(path)
self <- object
lockEnvironment(self)
invisible(self)
}
)
)
Run Code Online (Sandbox Code Playgroud)
然后我有一个儿童班可以做一些事情
myChildClass <- R6::R6Class(
classname = "myChildClass",
inherit = myClass,
lock_objects = FALSE,
public = list(
initialize = function(x) {
private$x <- x
},
addOne = function() {
private$x <- private$x + 1
private$x
}
),
private = list(x = NA_real_)
)
Run Code Online (Sandbox Code Playgroud)
我想要做的是能够保存我创建的类,然后在以后重新实例化它。
tmp <- myChildClass$new(x …Run Code Online (Sandbox Code Playgroud) 我正在设计一个包含plotly散点图的Shiny应用程序.我希望用户能够使用该event_data功能单击图表来记录事件,但是能够通过单击来清除该事件actionButton.下面是一些示例代码:
library(shiny)
library(plotly)
ui <- fluidPage(
actionButton("clearEvent", label = "clear event"),
verbatimTextOutput("plotVal"),
plotlyOutput('plot1')
)
server <- function(input, output, session) {
output$plot1 <- renderPlotly({
d <- diamonds[sample(nrow(diamonds), 1000), ]
plot_ly(d, x = ~carat, y = ~price, color = ~carat,
size = ~carat, text = ~paste("Clarity: ", clarity))
})
output$plotVal <- renderPrint({
e <- event_data("plotly_click")
if (is.null(e)) {
NULL
} else {
e
}
})
observeEvent(input[["clearEvent"]], {
e <- NULL
})
}
shinyApp(ui = ui, server …Run Code Online (Sandbox Code Playgroud) 我无法让我的包裹通过 R CMD 检查。我使用的是devtools1.9.1版本和Roxygen24.1.1版本。我遇到的问题如下:
Bad \usage lines found in documentation object 'my_fn':
Functions with \usage entries need to have the appropriate \alias
entries, and all their arguments documented.
The \usage entries must correspond to syntactically valid R code.
See chapter 'Writing R documentation files' in the 'Writing R
Extensions' manual.
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它实际上并没有给我任何指示问题发生的位置。它只是 2 个空格。
我的功能如下:
#' My function
#'
#' Extracts data from the database in order to produce plots and
#' descriptive statistics.
#'
#' @param …Run Code Online (Sandbox Code Playgroud) 我有一个函数,定义如下
fn1 <- function(var = NULL) {
if (missing(var)) var else deparse(substitute(var))
}
Run Code Online (Sandbox Code Playgroud)
我可以调用这个函数,它给了我我想要的。
fn1()
# NULL
fn1(test)
# [1] "test"
Run Code Online (Sandbox Code Playgroud)
我现在想要功能化var.
fn2 <- function(var = NULL) {
deparse_var(var)
}
deparse_var <- function(var) {
if (missing(var)) var else deparse(substitute(var))
}
Run Code Online (Sandbox Code Playgroud)
但这并没有给我预期的结果
fn2()
# [1] "var"
fn2(test)
# [1] "var"
Run Code Online (Sandbox Code Playgroud)
因为我有varinside的值deparse_var(),我可以检查它是否是NULL。但deparse如果不是,则不起作用。
deparse_var <- function(var) {
if (is.null(var)) var else deparse(substitute(var))
}
fn2()
# [1] NULL
fn2(test)
# Error in deparse_var(var) : …Run Code Online (Sandbox Code Playgroud) 继此问题之后,我希望将传单地图保存和下载为 png 或 jpeg 图像。我有以下代码,但我不断收到错误消息。
ui <- fluidPage(
leafletOutput("map"),
downloadButton("dl")
)
server <- function(input, output, session) {
output$map <- renderLeaflet({
leaflet() %>%
addTiles()
})
output$dl <- downloadHandler(
filename = "map.png",
content = function(file) {
mapshot(input[["map"]], file = file)
}
)
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
我尝试下载(通过单击按钮)时遇到的错误是
Warning: Error in system.file: 'package' must be of length 1
Stack trace (innermost first):
65: system.file
64: readLines
63: paste
62: yaml.load
61: yaml::yaml.load_file
60: getDependency
59: widget_dependencies
58: htmltools::attachDependencies …Run Code Online (Sandbox Code Playgroud)