小编mik*_*eck的帖子

为Travis构建安装Python和R?

我一直在研究一个R包,它通过简单的服务器脚本和套接字连接与Python连接.我可以在我自己的机器上测试,但我也想在Travis构建上测试它(我不想完成设置Linux VM的工作).要做到这一点,我需要一个Python安装,我可以在我的R包测试中传递路径,以及要使用的端口号.

我已经看到这个答案,建议安装多个Python构建是可能的,但我不知道如何处理

  1. 指定Python可执行文件的路径
  2. 选择测试的端口号.还应该注意,我用于Python'服务器'的Python脚本使用'localhost'.

是否有可能在特拉维斯做我想做的事情?如果我想与特拉维斯做到这一点?

编辑这是我的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)

python r travis-ci

8
推荐指数
1
解决办法
302
查看次数

在一次更新多个包时,出现"无法删除先前安装的包"错误

这是一个反复出现的问题,例如

我多次遇到过这个问题.最令人讨厌的是当它出现在一堆包裹中时; 比如我做的事情

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()实际包含哪些文件夹包,以便我只重新安装丢失的包?

或者:有没有更好的方法来检查缺少的包依赖?

r package-management

8
推荐指数
1
解决办法
5631
查看次数

R CMD检查不遵守knitr代码块中的选择性代码评估

我正在使用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 …

r cran knitr r-markdown

6
推荐指数
1
解决办法
457
查看次数

ggplot 带虚线的箭头

考虑以下轨迹:

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从箭头定义本身中排除美学?

r ggplot2

6
推荐指数
1
解决办法
1084
查看次数

在shinydashboard标题右侧添加文本

如何在仪表板标题侧边栏图标的右侧添加文本?似乎以前的类似解决方案不再适用于更新dashboardHeader().

这是我在基本的shinydashboard设置中尝试做的事情:

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)

有一个更好的方法吗?

r shiny shinydashboard

5
推荐指数
2
解决办法
4494
查看次数

使用dplyr :: select通过sym和enquo选择列范围

BLUP:是否可以使用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)

r dplyr rlang

0
推荐指数
1
解决办法
68
查看次数