小编Seb*_*uer的帖子

如何防止blogdown重新发布所有帖子?

背景:

我正在建立一个基于@ YihuiXie的R包的博客blogdown.

问题:

当我render_site(),所有源文件(*.Rmd)都被渲染 - 甚至重新重新保存未更改的源文件.

这种完全重新渲染是耗时且不必要的(我认为).

问题/期望的解决方案:

如何防止blogdown重新呈现未更改的源文件?我希望blogdown只渲染新的或更改的源文件.

我已经尝试过的:

  • 我读过博客书 ; Yihui似乎提出了"重建所有"的方法.

  • 我已经阅读了render_site()和的帮助文件hugo_build().第一个声明它将呈现所有rmd文件.相比之下hugo_build(),没有编织rmd文件(即,rmd文件未编译为md文件).

  • 我已经检查了SO和谷歌,但这个问题似乎没有被问过.

SessionInfo():

R version 3.4.4 (2018-03-15)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.4

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shiny_1.1.0

loaded via a namespace (and …
Run Code Online (Sandbox Code Playgroud)

markdown r r-markdown hugo blogdown

11
推荐指数
1
解决办法
414
查看次数

将多个函数传递给purrr:map

我想一次将多个函数传递给一个purrr :: map调用,其中函数需要一些参数.作为伪代码:

funs <- c(median, mean)

mtcars %>% 
  purrr::map(funs, na.rm = TRUE) 
Run Code Online (Sandbox Code Playgroud)

此代码并没有跑,而是意在展示我在寻找:多种功能穿越到map了一些争论一起.

我看了一下,compose但那个功能做了不同的事情.

r purrr tidyverse

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

如何更改ggplot2中的默认配色方案?

我想更改ggplot2中的默认颜色方案.也就是说,我想在脚本的一个点定义一个颜色方案(比如说:viridis),这样所有后续的ggplot图都将使用这种颜色方案,而不必+ scale_color_viridis()每次调用.

我已经看过这篇SO帖子update_geom_defaults(geom, new),但我找不到解释这个函数的方法来使用像viridis这样的方案.

我也尝试更新ggplot颜色,类似于这篇文章,但是,正如@baptise所指出的,这种方法并不真正起作用.

简而言之:

  1. 定义新的配色方案,例如,viridis

  2. 随后调用ggplot而不添加,+ scale_color_viridis()但这个ggplot图仍使用viridis颜色方案.

r ggplot2

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

非标准评估、lapply 和 ggplot

我正在尝试使用 ggplot2 以编程方式绘制分布。

我无法弄清楚如何在此处使用非标准评估 (NSE)(即使在阅读了 Hadley 的 NSE 书籍章节等之后)。

考虑以下代码:

library(ggplot2)


gg_dens <- function(x){
  eval(ggplot(data.frame(x), aes_string(x = substitute(x))) + geom_density() +
         ggtitle(substitute(x)), data.frame(x))
}


lapply(mtcars, function(x) gg_dens(x))
Run Code Online (Sandbox Code Playgroud)

这段代码确实产生了许多密度图,每一列一个,好的。但是,它并没有打印所绘制的变量的名称。而是x打印占位符变量(参见图)。

由上面的代码产生的图

我的目标是x用真实的变量名替换引号,例如,mpg.

r ggplot2 nse

5
推荐指数
1
解决办法
813
查看次数

使用tidyeval为“ lm”编程功能

我正在尝试使用tidyeval(非标准评估)围绕“ lm”编写一个函数。使用基本R NSE,它的工作原理是:

lm_poly_raw <- function(df, y, x, degree = 1, ...){
  lm_formula <-
    substitute(expr = y ~ poly(x, degree, raw = TRUE),
               env = list(y = substitute(y),
                          x = substitute(x),
                          degree = degree))
  eval(lm(lm_formula, data = df, ...))
}

lm_poly_raw(mtcars, hp, mpg, degree = 2)
Run Code Online (Sandbox Code Playgroud)

但是,我还没有弄清楚如何使用tidyeval和编写此函数rlang。我认为substitute应该用代替enquo,并用代替!!。哈德利的Adv-R有一些提示,但我不知道。

r lm tidyeval

5
推荐指数
1
解决办法
353
查看次数

ggplot中的换行符用LateX表达式注释

情况:

我有一个ggplot图,我想在其中添加一些文本注释.文本注释应该出现在两行中(可读性和空间),每行包含一些TeX公式:

library(tidyverse)
library(latex2exp)

ggplot(NULL, aes(c(-5,5))) +
      geom_area(stat = "function", fun = dnorm, fill = "grey40", xlim = c(-2, 2)) +
      annotate(geom = "text", label = TeX(paste("Distribution of $\\bar{x}$","\n","under $H_0$")),
               x = -1, y = 0.3,
               color = "red")
Run Code Online (Sandbox Code Playgroud)

问题:

换行没有显示出来.该线不分为两行.

什么没有奏效:

我曾尝试paste(TeX(...)),并parse = T没有成功.

在此输入图像描述

我也试过这个label = expression(paste("distribution of ", bar(x), "\n", "under H0"))抬头这里,没有成功.

题:

如何将注释(红色文本)分成两行?

latex r line-breaks ggplot2 plotmath

5
推荐指数
1
解决办法
1852
查看次数

如何手动评分考试/问题?

我想做什么:

我想r-exams在以下过程中使用:

  1. 向学生提供 pdf 格式的电子考试(使用 exams2pdf(..)
  2. 让学生上传带有答案的excel文件
  3. 使用 (using eval_nops(...))为答案评分

我的问题:

调用该函数eval_nops()是手动评分问题的首选方法r-exams吗?

如果没有,更喜欢哪种方式?

我尝试过的:

我知道该exam2nops()功能,并且我知道它会返回一个.RDS存储正确答案的文件。因此,我基本上有我需要的东西。然而,我发现这个过程不是很简单,因为正确的答案被埋藏在 RDS 文件的深处。

r r-exams

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

使用purrr :: map将多个数据帧写入csv文件

问题:

我有一个数据帧列表,应该作为csv文件写入磁盘.

假设这是数据框列表:

dfs <- list(iris,
            mtcars)
Run Code Online (Sandbox Code Playgroud)

什么没有奏效:

我试图像这样建立正确的文件名,但它不起作用:

dfs %>% 
  map(~paste0("data-raw/", ., ".csv"))
Run Code Online (Sandbox Code Playgroud)

我希望这一点能正确地将文件名作为字符串返回.而是map将每列和每个值匹配到paste0调用.

我也尝试了这个deparse(substitute(.))技巧,但.map通话中没有正确认识.

下一步是将数据帧(元素dfs)写为csv文件.

题:

我如何使用purrr::map(或类似的appraoch)将每个数据帧(每个元素dfs)作为csv-file写入磁盘write_csv

csv r purrr

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

具有大解的数值练习会导致错误

背景

R/exams 是为学生生成考试的绝佳工具。

问题

当数值练习有很大的解时,会抛出错误:

Error in string2num(exsolution) : 
  all numeric items must be finite and non-missing
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是我错过了什么?

最小的例子

这是引发错误的最小练习(“test-debug.Rmd”):

Question
========
Some text

Solution
========
Some solution

```{r}
sol <- 1e4
```

Meta-information
================
exname: test-debug
extype: num
exsolution: `r sol`
Run Code Online (Sandbox Code Playgroud)

我曾经exams2html渲染过这个练习:

exams2html(file = "test-debug.Rmd",
           edir = path_to_exercise,
           dir = path_output)
Run Code Online (Sandbox Code Playgroud)

系统信息

考试2.4-0

r r-exams

2
推荐指数
1
解决办法
96
查看次数

标签 统计

r ×9

ggplot2 ×3

purrr ×2

r-exams ×2

blogdown ×1

csv ×1

hugo ×1

latex ×1

line-breaks ×1

lm ×1

markdown ×1

nse ×1

plotmath ×1

r-markdown ×1

tidyeval ×1

tidyverse ×1