我的 RStudio 因以下错误多次崩溃:
Error in (function (srcref) : unimplemented type (29) in 'eval'
发生这种情况的相似之处是:
该错误总是在 RStudio 会话中止之前显示。我丢失了环境中的所有数据和变量,但大部分代码似乎可以恢复。
任何人都知道什么可能导致这种情况或如何处理它?
这里我的 SessionInfo
R version 4.0.0 (2020-04-24)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)
Matrix products: default
locale:
[1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.12.8 forcats_0.5.0 stringr_1.4.0 dplyr_0.8.5 purrr_0.3.4 readr_1.3.1
[7] tidyr_1.0.2 tibble_3.0.0 ggplot2_3.3.0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试use_github_action_check_standard()从usethisR 包运行命令,以在 GitHub Actions 上的每次推送中检查我的包。
该测试在 Windows 和 MacOS 上运行没有问题,但对于这两个 Linux 版本,我的工作流程代码甚至在到达包代码之前就失败了。
\n当它尝试安装系统依赖项时失败,它给了我错误##[error]Process completed with exit code 1。
当我查看原始日志(如下)时,我注意到这一行:\n Cache not found for input keys: Linux-287c850eb370edd647ed85b6fac18cbaee02effa7d01b981304dce84a452b22c-1-, Linux--1-.\n但是我担心我不理解该错误。另外,我不认为是这样,因为密钥已经出现在上面的组中(注意 ),##[endgroup]但错误仅出现在下一组中(如屏幕截图所示)。
有任何想法吗?非常感谢!
\n我还在下面发布了我的整个工作流程代码。
\n2020-08-12T22:21:55.5243116Z ##[group]Run install.packages(\'remotes\')\n2020-08-12T22:21:55.5243360Z [36;1minstall.packages(\'remotes\')[0m\n2020-08-12T22:21:55.5243487Z [36;1msaveRDS(remotes::dev_package_deps(dependencies = TRUE), "../.github/depends.Rds", version = 2)[0m\n2020-08-12T22:21:55.5243834Z [36;1mwriteLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), "../.github/R-version")[0m\n2020-08-12T22:21:55.5250702Z shell: /usr/local/bin/Rscript {0}\n2020-08-12T22:21:55.5251247Z env:\n2020-08-12T22:21:55.5251370Z R_REMOTES_NO_ERRORS_FROM_WARNINGS: true\n2020-08-12T22:21:55.5251571Z RSPM: https://packagemanager.rstudio.com/cran/__linux__/focal/latest\n2020-08-12T22:21:55.5251726Z R_LIBS_USER: /home/runner/work/_temp/Library\n2020-08-12T22:21:55.5251838Z TZ: UTC\n2020-08-12T22:21:55.5251944Z NOT_CRAN: …Run Code Online (Sandbox Code Playgroud) 使用该guide_legend参数,即使没有指定任何进一步的参数,也会将我的图例从连续图例更改为离散图例。我需要纠正这个问题(例如,要使用这个:将 NA 值的框添加到连续地图的 ggplot 图例中,然后对图例进行排序。)
df <- expand.grid(X1 = 1:10, X2 = 1:10)
df$value <- df$X1 * df$X2
ggplot(df, aes(X1, X2)) +
geom_tile(aes(fill = value))
Run Code Online (Sandbox Code Playgroud)
ggplot(df, aes(X1, X2)) +
geom_tile(aes(fill = value))+
scale_fill_continuous(guide = guide_legend())
Run Code Online (Sandbox Code Playgroud)
如果我在将其添加为参数时指定参数,也会发生同样的情况+ guides(fill = guide_legend())
任何想法如何确保图例保持不变,以便我可以使用例如参数order。
谢谢!
我正在尝试实现两件可能不兼容的事情:当我创建 PDF 时,我希望将 RMarkdown 块中的代码包裹在每一行中(换句话说,下面的行在页面上运行)边缘)。
在阅读了一些内容之后(包括这里并简要尝试了该styler包,我发现使用tidy=TRUE和tidy.opts = list(width.cutoff=60)工作(见下文)
knitr::opts_chunk$set(tidy.opts=list(width.cutoff=60),tidy=TRUE)
Run Code Online (Sandbox Code Playgroud)
注意:您可能需要formatR安装。
但遗憾的是,这破坏了代码的格式,管道%>%保留了管道的格式并让代码在页面外运行。
有没有办法正确地做到这一点?这样文本就可以保留在页面上,结构也可以保持一定的位置吗?
感谢您的帮助!
返工:
两者的标题:
---
title: "R Notebook"
output: pdf_document
---
Run Code Online (Sandbox Code Playgroud)
选择第二个图像的块
knitr::opts_chunk$set(tidy.opts=list(width.cutoff=60),tidy=TRUE)
Run Code Online (Sandbox Code Playgroud)
两者的示例代码:
data(mtcars)
library(tidyverse)
variable_1 <- 10
variable_2 <- 50
variable_3 <- 30
variable_4 <- 5
variable_5 <- 100
variable_6 <- 25
variable_7 <- 600
mtcars %>%
mutate(mpg = ifelse(mpg>18,
yes = (variable_1*variable_2)*variable_3 + variable_4 + variable_5 + variable_6 + variable_7,
no = mpg)) …Run Code Online (Sandbox Code Playgroud) 我正在使用 GitHub Actions 进行 R CMD 检查(请参阅https://github.com/r-lib/actions)。
我想snapshot_file在testthat这种脚本中使用:
save_png <- function(code, width = 1000, height = 600) {
path <- tempfile(fileext = ".png")
grDevices::png(path, width = width, height = height)
on.exit(dev.off())
code
path
}
set.seed(123)
df <- data.frame(y=rnorm(20),x=rnorm(20))
test_that("graphs are correct", {
expect_snapshot_file(path = save_png(plot(df$y,df$x)), name = "plot1.png")
}
Run Code Online (Sandbox Code Playgroud)
目前,错误将始终是:
Adding new file snapshot "_snaps/gets-test1-example/plot1.png"。或者,如果我上传在我的笔记本电脑上生成的绘图,我会收到一个错误,它们是不同的(非常轻微)......
因为我知道快照测试很脆弱,所以我想到了两个选择:
我想通过从其中减去名称几乎相同的另一列来更正 data.frame 中的一列,但另一列有后缀。我想为此使用该mutate_at功能。
试图弄清楚这一点,我一直在努力访问 mutate_at 的函数部分中的列名,以使用它来访问另一列。
我在下面的一个小例子中展示了这一点,但基本上我想访问当前使用的列的名称,.然后从管道中的数据中选择一个与名称相同.但带有后缀的列(在下面将是"_new")。
谢谢你的帮助!
这是我希望如何做的一个例子 - 但这不起作用。
library(tidyverse)
data("mtcars")
new <- mtcars/4
names(new) <-paste0(names(new),"_new")
df <- bind_cols(mtcars,new)
df %>%
mutate_at(.vars = vars(carb,disp),
.funs = list(corrected = ~ . - df %>% pull(paste0(names(.),"_new"))))
df %>% pull(paste0("carb","_new"))
Run Code Online (Sandbox Code Playgroud) 只是针对将包提交到 CRAN 时出现的问题提供我的解决方案,并收到类似于以下内容的错误:
\n* checking tests ... [838s/167s] NOTE\n Running \xe2\x80\x98testthat.R\xe2\x80\x99 [838s/167s]\nRunning R code in \xe2\x80\x98testthat.R\xe2\x80\x99 had CPU time 5 times elapsed time\nRun Code Online (Sandbox Code Playgroud)\n现在我无法复制这个错误(在本地,在 win-hub 或 rhub 上)并且发现关于此的信息很少。
\n我正在绘制以下直方图:
library(palmerpenguins)
library(tidyverse)
penguins %>%
ggplot(aes(x=bill_length_mm, fill = species)) +
geom_histogram() +
facet_wrap(~species)
Run Code Online (Sandbox Code Playgroud)
对于每个直方图,我想为每个直方图添加一个正态分布,其中包含每个物种的平均值和标准差。
当然,我知道我可以在开始命令之前计算组特定的均值和 SD ggplot,但我想知道是否有更智能/更快的方法来做到这一点。
我努力了:
penguins %>%
ggplot(aes(x=bill_length_mm, fill = species)) +
geom_histogram() +
facet_wrap(~species) +
stat_function(fun = dnorm)
Run Code Online (Sandbox Code Playgroud)
但这只在底部给了我一条细线:
有任何想法吗?谢谢!
编辑 我想我想要重新创建的是来自Stata的这个简单命令:
hist bill_length_mm, by(species) normal
我知道这里有一些建议:using stat_function and facet_wrap Together in ggplot2 in R
但我专门寻找一个简短的答案,不需要我创建单独的函数。
本质上,这是这个问题的转帖:https ://confluence.ecmwf.int/pages/viewpage.action?pageId =149341027
我已经从 CDS 下载了 ERA5。对于从每个考虑年份的 1 月 1 日到 12 月 31 日的每个日历日,输入文件具有 24 小时步长(0、1、2、3、4、...、23)。
ECMWF 在此声明https://confluence.ecmwf.int/display/CKB/ERA5%3A+How+to+calculate+daily+total+precipitation必须通过累加 1979 年 1 月 1 日的降水来计算每日总降水量1 月 1 日的第 1、2、...、23 步和 1 月 2 日的第 0 步。这意味着 1979 年 1 月 1 日的第 0 步不包括在当天的总降水量计算中。为了计算 1979 年 1 月 2 日的总降水量,我们还使用当天的步骤 1、2、3、...、23 加上 1 月 3 日的步骤 0,依此类推。
在 python 中似乎有一个选项可以这样做:
import xarray as xr # import xarray library
ds_nc = xr.open_dataset('name_of_your_file.nc') # read the file
daily_precipitation = …Run Code Online (Sandbox Code Playgroud) 我想在一个大型项目中使用 R Markdown。该项目使用了许多非常大的自定义函数。因此,我想使用 Markdown 来评论该功能的某些部分。
```{r}
my_function <- function(x,y){
test <- x + seq(1,10)
```
Run Code Online (Sandbox Code Playgroud)
然后我想用Markdown来描述函数的第二部分
```{r}
output <- test + y
return(output)
}
```
Run Code Online (Sandbox Code Playgroud)
然后我想应用该功能
```{r}
my_function(1,2)
```
Run Code Online (Sandbox Code Playgroud)
当然我意识到我可以简单地使用 # 符号来添加注释,但这不如 markdown 好。这是相关的,例如大型闪亮的服务器功能或类似的东西。任何想法我怎么能做到这一点?