我根据Hadley Wickham关于如何使用Roxygen构建和记录包的说明创建了一个R包.现在我想将函数帮助页面和插图导出到一堆html文件,以便它也可以在网站上读取和链接.
当我查看我的库中已安装的软件包时,有一个html文件夹,但它只包含一个00Index.html页面.是否有一种简单的方法可以导出我的包文档的其余部分(功能帮助页面和插图)?
在MySQL数据库中,表以utf8编码,但由于某种原因,连接在latin1中.
res <- RMySQL::dbSendQuery(con,"show variables like 'character_set_%'")
dbFetch(res)
Variable_name Value
1 character_set_client latin1
2 character_set_connection latin1
3 character_set_database utf8mb4
4 character_set_filesystem binary
5 character_set_results latin1
6 character_set_server latin1
7 character_set_system utf8
8 character_sets_dir /usr/share/mysql/charsets/
Run Code Online (Sandbox Code Playgroud)
RMySQL::dbGetQuery(con,"show variables like 'character_set_%'")
RMySQL::dbGetQuery(con,"set names utf8")
Run Code Online (Sandbox Code Playgroud)
但我实际上更喜欢使用dplyr::tbl查询数据库.由于dplyr::src_mysql只创建连接,因此可以发送创建表的sql语句.将连接设置设置为使用utf8编码的dplyr方法是什么?
使用R CMD测试软件包的代码时,请使用非标准评估" no visible binding for global variable ..."为dplyr函数内使用的每个变量显示以下注释:例如,如果我使用
cars %>% mutate(speedplusone = speed +1)
Run Code Online (Sandbox Code Playgroud)
R CMD检查将给出注释:
no visible binding for global variable speed
Run Code Online (Sandbox Code Playgroud)
删除这些注释的问题已经被询问过,Hadley给出了答复,可以选择使用标准评估重写调用或通过调用伪造这些变量的存在globalVariables()。
根据Hadley的回答,我可以使用标准评估来删除那些R CMD Check注释,替换mutate为mutate_:
cars %>% mutate_(speedplusone = ~speed +1)
Run Code Online (Sandbox Code Playgroud)
我是否应该重写软件包中的所有dplyr函数调用,以完全避免非标准评估?
从MySQL表加载数据时,通常会出现以下警告:
unrecognized MySQL field type 7 in column 26 imported as character
Unsigned INTEGER in col 3 imported as numeric
Run Code Online (Sandbox Code Playgroud)
如何正确地将数据库表加载到数据帧中,以便不显示这些警告?
我看到该函数RMySQL::dbDataType()可以“确定S对象的SQL数据类型”。有没有办法告诉它哪种MySQL数据类型与数据帧中的哪种矢量类型相匹配?
我想测试一个已安装的软件包,但这会返回一个错误.
library(testthat)
test_package("testthat")
# Error: No tests found for testthat
Run Code Online (Sandbox Code Playgroud)
test_package(source here)返回此错误,因为它system.file("tests", package = package)是空的.实际上,tests安装的软件包中缺少该目录.
list.dirs(system.file("", package = "testthat"))
# [1] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat/"
# [2] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//help"
# [3] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//html"
# [4] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//libs"
# [5] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//Meta"
# [6] "/home/paul/R/x86_64-pc-linux-gnu-library/3.2/testthat//R"
Run Code Online (Sandbox Code Playgroud)
如何安装包以使其测试目录仍然存在?
在笔记本模式下,变量不会从一个块保留到下一个块,但是在将 Markdown 文档编织到 html 时会保留它们。
我制作了一个名为 pythonvariables.Rmd的示例文档,该文件的内容是:
---
title: "R Notebook"
output:
html_document:
df_print: paged
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(reticulate)
```
```{python}
x = 1
```
```{python}
print(x)
```
```{r}
print(py$x)
```
Run Code Online (Sandbox Code Playgroud)
在 Rstudio 1.1.453 版本中,在 notebook 模式下,当一个块一个接一个地运行时,print(x)python 块的输出为:
Traceback (most recent call last):
File "C:\Users\rougipa\AppData\Local\Temp\2\RtmpQFW3Rj\chunk-code-1d44920f50.txt", line 1, in <module>
print(x)
NameError: name 'x' is not defined
Run Code Online (Sandbox Code Playgroud)
但是,当 Rmd 编译为 html 时,问题不会出现。正如预期的那样,print(x)python 块的输出为1。
我正在调试一个模型。输入数据是使用 python 脚本准备的,该脚本调用 R 脚本,通过 python 调用subprocess.check_call()(现在替换为pbs.Command())。这个 R 脚本有各种错误。当R脚本中发生错误时,我们可以在标准错误中看到错误消息,出现在python错误的上方(或下方)。问题是R返回的错误信息只返回发生错误的一小部分代码,没有任何行号。然后我们必须在原始源中搜索该代码段。如果我们有实际的行号,那就更容易了。
一个相关的答案建议使用 IDE再次逐行运行整个 R 代码,但我们想知道发生此错误的行号,以便我们至少可以运行该行之前的所有 R 代码。
我正在尝试使用 knitR 在 Latex 中生成模拟报告。我的 R 代码在产品上有一个循环,并为每个产品生成一个图表。我想为每个循环迭代包含一个部分标题。我使用了 resuls='asis' 并尝试在循环中打印部分标题,如下面的代码块所示:
<<looptest, echo=FALSE, results='asis', warning=FALSE>>=
for (product in c("prod 1","prod 2")){
print(paste("\\section{",product,"}", sep=""))
}
@
Run Code Online (Sandbox Code Playgroud)
问题是我在乳胶输出中得到了这个:
[1] "\\section{prod 1}"
[1] "\\section{prod 2}"
Run Code Online (Sandbox Code Playgroud) 该cut函数的文档提供了“一种提取断点的方法”
aaa <- c(1,2,3,4,5,2,3,4,5,6,7)
labs <- levels(cut(aaa, 3))
cbind(lower = as.numeric( sub("\\((.+),.*", "\\1", labs) ),
upper = as.numeric( sub("[^,]*,([^]]*)\\]", "\\1", labs) ))
# lower upper
# [1,] 0.994 3.00
# [2,] 3.000 5.00
# [3,] 5.000 7.01
Run Code Online (Sandbox Code Playgroud)
是否有另一种内置的方式来提取断点?
G Elliot Moris 使用动态分布图显示了政治两极分化.

从这个问题:如何使用'facet'在GGPLOT中创建多个密度图我设法使用facet使用虚拟数据重现类似的图:
library(ggplot2)
set.seed(101)
dtf <- data.frame(variable = c(rnorm(1000),
rnorm(1000) + rep(1:10/2,each =100)),
group = rep(c("a","b"), each = 1000),
year = rep(2001:2010, each=100))
ggplot(dtf) +
geom_density(aes(x = variable, fill = group)) +
facet_grid(year ~.)
Run Code Online (Sandbox Code Playgroud)
但我希望这些分布在原始情节中重叠.这些图是否有特定的名称,是否可以用R复制它们?
[编辑] 此全局温度分布图中提供了类似图的动态版本.