set.seed () в knitr и простых режимах выполнения - PullRequest
1 голос
/ 30 января 2020

Кажется, есть несоответствие между обработкой R команд random.seed() + sample() в режиме вязального устройства и простым (построчным) режимами выполнения. Например, когда я запускаю код R ниже строки построчно (нажимая Control-Enter), я получаю один набор элементов выборки x. Однако, когда я вяжу целые документы, я получаю другой набор элементов выборки, хотя начальное число устанавливается на то же число.

Я провел некоторое исследование по стековому потоку и в других местах, и единственное, что я нашел, что, по-видимому, имеет отношение к моему вопросу, это последний абзац следующей страницы на сайте И Хуэй. https://yihui.org/knitr/demo/cache/. После реализации предложения И Хуэй проблема остается (раскомментируйте вторую команду knitr::opts_chunk в RMarkdown ниже).

Мой вопрос: как получить одинаковые элементы выборки независимо от режима выполнения?

    ---
    title: "set.seed() in knitter mode"
    author: "some author"
    date: "1/27/2020"
    output: html_document
    ---

    ```{r setup, include=FALSE}
    library(knitr)
    knitr::opts_chunk$set(echo = TRUE)
    #knitr::opts_chunk$set(cache.extra = rand_seed) # Yi Hui's suggestion
    ```

    ## set.seed() in knitter mode.

    ```{r}
    x=1:10
    set.seed(234252)
    sample(x,4)
    # When running the above code manually, I get 
    # [1] 2 4 6 10
    # When knitting the whole document, I get
    # [1] 3 2 6 5
    # How to get the same sampled elements of x regardless of the execution mode? 
    ```


R version 3.6.2 (2019-12-12). 
Platform: x86_64-apple-darwin15.6.0 (64-bit), 
Running under: macOS Catalina 10.15.2. 
Locale: en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 
Attached base packages: stats graphics grDevices utils datasets methods base 
Other attached packages: knitr_1.26
Loaded via a namespace (and not attached): compiler_3.6.2 magrittr_1.5    tools_3.6.2     htmltools_0.4.0 yaml_2.2.0      Rcpp_1.0.3      stringi_1.4.3   rmarkdown_2.0  stringr_1.4.0   xfun_0.11       digest_0.6.23   rlang_0.4.2   evaluate_0.14

...