小编Pau*_*eux的帖子

在Travis上构建R包,如何不将警告视为错误?

我正在Travis上构建一个R包,以便与包的用户分享集成状态.我没有错误,只有8个警告,我想暂时忽略它们.但travis认为构建失败并返回消息:

Found warnings, treating as errors (as requested)
Run Code Online (Sandbox Code Playgroud)

如何忽略警告?

r travis-ci

26
推荐指数
1
解决办法
1563
查看次数

是否有一个函数来检查安装了devtools :: install_github的软件包是否已更新?

我是github上的一个包的作者.我的同事安装了这个软件包devtools::install_github().他们想测试包是否已更新.是否有一个函数来检查是否已经提交了github主分支,因为它们上次安装了包?

r devtools

10
推荐指数
1
解决办法
2783
查看次数

使用传递给dplyr :: filter的参数创建一个函数,解决nse的最佳方法是什么?

使用dplyr的动词时,非标准评估非常方便.但是当使用带有函数参数的动词时,它可能会有问题.例如,让我们说我想创建一个函数,它给出了给定物种的行数.

# Load packages and prepare data
library(dplyr)
library(lazyeval)
# I prefer lowercase column names
names(iris) <- tolower(names(iris))
# Number of rows for all species
nrow(iris)
# [1] 150
Run Code Online (Sandbox Code Playgroud)

示例不起作用

此函数无法按预期工作,因为species 它在iris数据框的上下文中进行解释,而不是在函数参数的上下文中进行解释:

nrowspecies0 <- function(dtf, species){
    dtf %>%
        filter(species == species) %>%
        nrow()
}
nrowspecies0(iris, species = "versicolor")
# [1] 150
Run Code Online (Sandbox Code Playgroud)

3个实施例

要解决非标准评估问题,我通常会使用下划线附加参数:

nrowspecies1 <- function(dtf, species_){
    dtf %>%
        filter(species == species_) %>%
        nrow()
}

nrowspecies1(iris, species_ = "versicolor")
# [1] 50
# Because of function name completion the …
Run Code Online (Sandbox Code Playgroud)

r dplyr nse

9
推荐指数
2
解决办法
1367
查看次数

是否有相当于 tidyr nest 功能的熊猫?

tidyr::unnestR 语言中的方法与 Pandas 中的等效方法相同explode如此非常详细的答案中所述。我想知道是否有等效于 ?tidyr::nest` 的方法。

示例 R 代码:

library(tidyr)
iris_nested <- as_tibble(iris) %>% nest(data=-Species)
Run Code Online (Sandbox Code Playgroud)

数据列是一个列表列,其中包含数据框(这对于建模非常有用,例如在运行多个模型时)。

iris_nested
# A tibble: 3 x 2
  Species              data
  <fct>      <list<df[,4]>>
1 setosa           [50 × 4]
2 versicolor       [50 × 4]
3 virginica        [50 × 4]
Run Code Online (Sandbox Code Playgroud)

要访问数据列中的一个元素:

iris_nested[1,'data'][[1]]
[...]
# A tibble: 50 x 4
   Sepal.Length Sepal.Width Petal.Length Petal.Width
          <dbl>       <dbl>        <dbl>       <dbl>
 1          5.1         3.5          1.4         0.2
 2          4.9         3            1.4         0.2
 3          4.7         3.2          1.3         0.2
 4 …
Run Code Online (Sandbox Code Playgroud)

python r pandas tidyverse

9
推荐指数
1
解决办法
515
查看次数

如何从 python 检查 OpenAI 密钥的有效性?

当我要求 Chat GPT 完成消息时

import openai
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "What are the trade-offs around deadwood in forests?"}]
)
print(response)
Run Code Online (Sandbox Code Playgroud)

我得到一个RateLimitError: You exceeded your current quota, please check your plan and billing details.

有没有一个Python方法来检查密钥是否有效?

In [35]: openai.api_key
Out[35]: 'sk-...'
Run Code Online (Sandbox Code Playgroud)

python openai-api chatgpt-api

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

select和group_by之间关于引用变量的Dplyr差异?

在当前版本的dplyr中,select参数可以通过值传递:

variable <- "Species"
iris %>% 
    select(variable)

#       Species
#1       setosa
#2       setosa
#3       setosa
#4       setosa
#5       setosa
#6       setosa
#...
Run Code Online (Sandbox Code Playgroud)

但是group_by参数不能通过值传递:

iris %>% 
    group_by(variable) %>% 
    summarise(Petal.Length = mean(Petal.Length))

# Error in grouped_df_impl(data, unname(vars), drop) : 
# Column `variable` is unknown
Run Code Online (Sandbox Code Playgroud)

记录dplyr ::选择行为

iris %>% select(Species)
Run Code Online (Sandbox Code Playgroud)

记录在案的dplyr :: group_by行为

iris %>% 
    group_by(Species) %>% 
    summarise(Petal.Length = mean(Petal.Length))
Run Code Online (Sandbox Code Playgroud)
  • 为什么selectgroup_by对于不同的,以按值传递参数呢?
  • 为什么第一次select通话有效,将来会继续使用吗?
  • 为什么第一个group_by电话不起作用?我想弄清楚的什么样的组合quo(),enquo()和 …

r dplyr

7
推荐指数
1
解决办法
968
查看次数

if(interactive())是否等效于pythonic"if __name__ =="__ main__":main()"?

我希望R脚本具有在交互模式下执行的main()函数.但是在获取文件时不应执行main()函数.

已经有一个关于这个的问题,一个非常好的答案建议使用interactive()函数.然而,这对我不起作用.我没有足够的声誉点来评论或回答这个问题.所以我再次问这个问题.

我写这个 script_1.r

if(interactive()){
  your main code here
}
Run Code Online (Sandbox Code Playgroud)

如果我使用knitr来放弃html或pdf文档,那就是获取脚本.此代码if(interactive())不会被执行.这对我有好处,这就是我想要的.

我的问题是,如果我source("script_1.r")script_2.r交互模式,它仍将运行此if(interactive())部分下的代码.

python r

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

knitr:如何在不使用setwd()的情况下在knit2html中设置数字路径?

我在项目文件夹中工作,让我们说它的绝对路径是:/project.getwd()告诉我,我在这个项目文件夹中.我的所有文件读取和写入都与此项目根相关./project有一个子文件夹/project/docs/其中有一个R Mardown文件和一个R脚本:

report.Rmd 包含:

```{r }
plot(cars)
```
Run Code Online (Sandbox Code Playgroud)

knit_reports.R包含:

library(knitr)
knit2html("./docs/report.Rmd", "./docs/report.html")
Run Code Online (Sandbox Code Playgroud)

如果我运行knit_reports.R,会生成一个html页面,但页面上不会显示数字.

问题是数字存储在/project/figures.对于html文档生成,它们不可见.我正在寻找一种方法告诉knitr存储图片/project/docs/figures.

设置knitr选项root.dir或base.dir in report.Rmd不能解决问题,我试过opts_knit$set(root.dir = "./docs")opts_knit$set(base.dir = "/project/docs").

但是,如果我将工作目录更改为/project/docs:

setwd("./docs/")
knit2html("report.Rmd", "report.html")
Run Code Online (Sandbox Code Playgroud)

/project/docs/figure创建一个文件夹,并在html页面上显示图形.

许多人说在脚本中使用setwd()是不好的,因为它会弄乱可重复性.如何在不使用setwd()的情况下告诉knitr将数字放在我的项目子文件夹中?

r knitr r-markdown

6
推荐指数
2
解决办法
6998
查看次数

Docker消息:"忽略不支持的选项:restart"是否意味着忽略重启策略?

使用docker stack deploy,我可以看到以下消息:

Ignoring unsupported options: restart
Run Code Online (Sandbox Code Playgroud)
  • 这是否意味着没有重新启动策略?
  • 是否必须在撰写文件之外指定它们?

例如,您可以在该页面底部使用Joomla撰写文件查看此消息 .要启动撰写文件:

sudo docker swarm init
sudo docker stack deploy -c stackjoomla.yml joomla
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

6
推荐指数
2
解决办法
3860
查看次数

在 gitlab-ci 作业中将文件从摇杆容器传递到乳胶容器

我想使用 Gitlab CI 来编译一篇 Latex 文章,如tex.stackexchange 上的这个答案中所述(类似的 pdf 生成示例在artifactsgitlab 文档中显示)。我使用了期刊编辑提供的特殊乳胶模板。我的 Latex 文章包含使用 R 统计软件制作的数字。R 和 Latex 是两个具有很多依赖项的大型软件安装,因此我决定使用两个单独的容器进行构建,一个用于使用 R 进行统计分析和可视化,另一个用于将 Latex 文档编译为 pdf。

以下是内容.gitlab-ci.yml

knit_rnw_to_tex:
  image: rocker/verse:4.0.0
  script:
  - Rscript -e "knitr::knit('article.Rnw')"
  artifacts:
    paths:
      - figure/

compile_pdf:
  image: aergus/latex
  script:
  - ls figure
  - latexmk -pdf -bibtex -use-make article.tex
  artifacts:
    paths:
      - article.pdf
Run Code Online (Sandbox Code Playgroud)

knit_rnw_to_tex在 R "rocker" 容器中执行的作业成功,我可以从 gitlab "jobs" 页面下载图形工件。第二份工作的问题compile_pdfls figure向我显示了一个空文件夹,并且由于缺少数字,Latex 文章编译失败。

  • 根据这个答案和这个解释得很好的论坛帖子,应该可以使用工件在作业之间传递数据,但它们只使用一个容器来处理不同的作业。在我的情况下它不起作用。可能是因为我使用了两个不同的容器?
  • 另一种解决方案是仅使用rocker/tidyverse …

latex r gitlab gitlab-ci

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