标签: lintr

有人知道为什么 lintr 将我的 jupyter r 内核的第一个字符串标记为红色吗?

lintr 用红色标记我的第一个角色的屏幕截图

另一个示例的屏幕截图

我刚刚在 vscode 中设置了 R 来与 Jupyter 笔记本一起使用,但它用红色标记了我的内核的第一个字符串。

我收到的消息是:

Failed to run diagnostics: ! error in callr subprocess
Caused by error:
! Full file exclusions must be character vectors of length 1. items: 1 are not! lintr
Run Code Online (Sandbox Code Playgroud)

如果我卸载 languageserver 软件包,它就会消失,但 vscode 要求我重新安装它,然后它又回来了,我该如何摆脱它?

r jupyter visual-studio-code lintr

15
推荐指数
1
解决办法
1706
查看次数

使用 lintr::expect_lint_free() 进行的测试在 devtools::check() 中失败,但在 devtools::test() 中有效

我的包中的这个测试与devtools::test(). 在线 Travis 构建也进展顺利。

test_that("Package style", {
  lintr::expect_lint_free()
})
Run Code Online (Sandbox Code Playgroud)

然而,devtools::check()它失败了。错误信息是

   invalid 'path' argument
     Backtrace:
      1. lintr::expect_lint_free()
      2. lintr::lint_package(...)
      3. base::normalizePath(path, mustWork = FALSE)
      4. base::path.expand(path)
Run Code Online (Sandbox Code Playgroud)

我在 Windows 上运行 R 版本 3.6.3 (2020-02-29)、testthat 2.3.2 和 lintr 2.0.1。

我认为问题是 lintr 不知道要 lintr 哪个文件。

有人可以向我指出这个问题的解决方案是什么吗?

r testthat lintr

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

为什么 sapply() 和 options() “不受欢迎”?

Jim Hester 的“lintr”包包含许多不同的 R linter。该README以这种方式描述了其中一个linter :

undesirable_function_linter: 报告不受欢迎的功能的使用,例如选项或 sapply 并提出替代方案。

我很惊讶。我一直在使用的R用很多年了,我一直在使用options(),并sapply()多年。是什么让他们不受欢迎?还有更好的选择吗?

我知道getOption(),但它不能代替options()。我还了解*apply()变体Map()、 和 Tidyversemap函数。总体而言,Tidyverse 函数对我来说似乎比sapply()or Map()- 我更喜欢 Tidyverse 函数中的默认值和参数顺序 - 但我不会想到称之为sapply()“不受欢迎”。

r options sapply lintr

4
推荐指数
1
解决办法
86
查看次数

项目中没有可见的全局函数定义/全局变量没有可见的绑定?

我正在 VS Code 中使用 R,使用R Extension。我几乎所有的项目工作都使用Targets来完成,这意味着我的包导入和函数通常位于单独的文件中。

\n

一个简单的例子是在一个如下所示的文件夹中工作

\n
project\n\xe2\x94\x82   packages.R\n\xe2\x94\x82   README.md\n\xe2\x94\x82   _targets.R\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80R\n\xe2\x94\x82       functions.R\n
Run Code Online (Sandbox Code Playgroud)\n

我遇到的问题是,我从 {lintr} 收到有关从packages.R(或从tar_option_set(packages=c(...)))加载的函数(esp 特殊)的全局函数定义的警告。我有一个类似的问题,lintr 无法识别列名,而是将它们视为丢失的变量。例如,中的函数functions.R可能如下所示:

\n

Lintr 警告示例

\n

如果我正在开发一个包,解决方案(如此和其他地方发布的)将是将函数包含在命名空间中。但我不认为每个快速分析都需要一个包。我还能如何避免这些警告?是排除这些短绒的唯一其他选择吗/.lintr

\n

r visual-studio-code lintr targets-r-package

3
推荐指数
1
解决办法
1361
查看次数

如何使用 lintr::lint() 获得非零退出状态以使构建失败

我试图通过lintr在编写 R 代码时使用该包来帮助我们的开发人员组获得类似的代码风格。为了自动化这一步,如果代码中有任何错误(错误的样式),我希望我们的构建失败。如果这很重要,我们将使用 Jenkins 作为我们的构建管道。

我知道我们可以使用该expect_lint_free功能,但我们不制作包,只制作脚本文件。该lint函数的输出看起来不错,但即使 linter 返回改进建议,构建也会通过。我如何获得非零退出状态,这将使 Jenkins 构建失败?

在命令行上运行的(简化的)代码

Rscript -e "lintr::lint('my_script.R')"
Run Code Online (Sandbox Code Playgroud)

没有返回错误,但有很多建议。

注意:我目前对“创建 R 包”解决方案不感兴趣。

r build lintr

0
推荐指数
2
解决办法
172
查看次数