我一直在研究一个R包,它通过简单的服务器脚本和套接字连接与Python连接.我可以在我自己的机器上测试,但我也想在Travis构建上测试它(我不想完成设置Linux VM的工作).要做到这一点,我需要一个Python安装,我可以在我的R包测试中传递路径,以及要使用的端口号.
我已经看到这个答案,建议安装多个Python构建是可能的,但我不知道如何处理
是否有可能在特拉维斯做我想做的事情?如果我想与特拉维斯做到这一点?
编辑这是我的Travis配置:
language: r
r:
- release
- devel
cache: packages
sudo: false
matrix:
include:
- python:2.7
- python:3.6
# Be strict when checking our package
warnings_are_errors: true
# System dependencies for HTTP calling
r_binary_packages:
- jsonlite
- R6
Run Code Online (Sandbox Code Playgroud)
以下是我的R包中的示例:
pypath = Sys.which('python')
if(nchar(pypath) > 0) {
py = PythonEnv$new(port = 6011, path = pypath)
py$start
py$running
py$set(a = 5)
py$get('a')
py$stop
} else {
message("No Python environment available")
} …Run Code Online (Sandbox Code Playgroud) 这是一个反复出现的问题,例如
我多次遇到过这个问题.最令人讨厌的是当它出现在一堆包裹中时; 比如我做的事情
update.packages(ask = FALSE)
Run Code Online (Sandbox Code Playgroud)
并得到一些这些错误.但错误是误导,因为R倾向于实际删除旧的包版本---但是然后不安装新版本.一旦发生这种情况,你无法修复它update.packages; 你必须从头开始重新安装.
这个问题最令人沮丧的方面是它经常在安装依赖项时出现,所以例如我可能会成功更新dplyr,但在此过程中会Rcpp被删除.现在我无法加载,dplyr因为Rcpp缺少,所以我需要重新安装Rcpp.
我当前的解决方法(当卸载的软件包数量很大时)将关闭所有R会话,使用基本R GUI(即不是RStudio或RTVS)打开一个新会话并执行
lapply(dir(.libPaths()), install.packages)
Run Code Online (Sandbox Code Playgroud)
这会重新安装我的整个库.这太过分了.
有没有更好的方法来检查.libPaths()实际包含哪些文件夹包,以便我只重新安装丢失的包?
或者:有没有更好的方法来检查缺少的包依赖?
我正在使用32位Windows 7 上的R 3.1.0(以及运行Windows 8 64位的另一台计算机上)构建一个软件包,我正在使用knitr使用Markdown编写小插图.我希望在CRAN上发布这个包,所以我使用R CMD检查来检查我的演示,数据集和小插图是否都表现正常.我把我的小插图保存为.Rmd文件(而不是将它们放在包构建过程之外并将它们存放在inst/doc中),因为它们作为我的包的额外测试并且不管怎样都不是很大.
我的问题是在构建我的小插图时R CMD检查失败,即使我运行R CMD构建然后R CMD INSTALL - 构建一切正常.查看日志文件,它似乎失败了,因为它试图评估我明确告诉knitr不要评估的代码.作为一个通用的例子,如果我写
```{r example-chunk eval=c(1:3, 5:6), tidy=FALSE}
foo = 5
bar = 3
## don't evaluate the next line
file.show("i/dont/really/exist.csv")
## ok, start evaluating again
foobar = foo*bar
```
Run Code Online (Sandbox Code Playgroud)
在.Rmd文件中,运行R CMD检查将失败,因为它将尝试评估第4行.但是,如果我运行R CMD build mypackage然后R CMD install --build mypackage.tar.gz(我知道这是因为我可以去我的Rlibs文件夹并在mypackage/doc中找到完美的html小插图.同样,如果运行R CMD Sweave来构建小插图,我也会正确评估大块.
如果你想自己尝试一下,我正在构建的软件包(我遇到的问题)在Github上:https://github.com/mkoohafkan/flowdurr-edu.您可以查看raw/packagemaker.html以获取相关说明,希望它很简单(R代码贯穿包制目录,构建帮助文件并将一些手动编辑的文件复制到包目录中).R CMD检查在我的所有晕影上失败:当构建flowdurr-datasets.Rmd时,它坚持用虚假路径评估一条线,即使我告诉它不要.在构建hspf-analysis.Rmd时,R CMD检查坚持评估我排除的行,因为它需要很长时间才能完成(使用rgenoud来拟合某些分布参数).R CMD检查也在vignette.Rmd上失败,但原因不同; 我故意抛出错误来展示你不能用特定功能做什么的例子,而knitr没有问题R …
考虑以下轨迹:
test = data.frame(x = c(9500, 25500, 47500), y = c(10.03, 7.81, 0.27))
Run Code Online (Sandbox Code Playgroud)
我想将此绘制为带有 的路径ggplot2,并带有标识方向的箭头:
ggplot(test) + aes(x = x, y = y) +
geom_path(size = 1,
arrow = arrow(type = "open", angle = 30, length = unit(0.1, "inches")))
Run Code Online (Sandbox Code Playgroud)
这看起来不错。但是,如果我想使用虚线,箭头也用虚线绘制,看起来很糟糕:
ggplot(test) + aes(x = x, y = y) +
geom_path(linetype ="dashed", size = 1,
arrow = arrow(type = "open", angle = 30, length = unit(0.1, "inches")))
Run Code Online (Sandbox Code Playgroud)
有没有办法linetype从箭头定义本身中排除美学?
如何在仪表板标题侧边栏图标的右侧添加文本?似乎以前的类似解决方案不再适用于更新dashboardHeader().
这是我在基本的shinydashboard设置中尝试做的事情:

我可以使用此答案中的策略来获取标题中的文本,但它是正确的(我可以修复自定义css)并且也感觉非常hacky.
library(shiny)
library(shinydashboard)
ui <- dashboardPage(dashboardHeader(title = "demo",
tags$li(class = "dropdown",
tags$p("foo")
)
), dashboardSidebar(), dashboardBody())
server <- function(input, output) { }
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
sym/ enquo将列范围传递给dplyr::select?考虑以下带有A至E列的标题:
library(tibble)
library(dplyr)
set.seed(4)
d = as_tibble(setNames(as.list(rnorm(5)), LETTERS[1:5]))
d
## # A tibble: 1 x 5
## A B C D E
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.217 -0.542 0.891 0.596 1.64
Run Code Online (Sandbox Code Playgroud)
我可以使用列运算符选择列的范围:,例如
select(d, B:D)
## # A tibble: 1 x 3
## B C D
## <dbl> <dbl> <dbl>
## 1 -0.542 0.891 0.596
Run Code Online (Sandbox Code Playgroud)
我什至可以通过这个范围作为保证:
cols = quo(B:D)
select(d, !!cols)
# same result as above …Run Code Online (Sandbox Code Playgroud)