1

我正在尝试使用targetsR 中的包提供的交互式 Markdown 功能(更多信息:https ://books.ropensci.org/targets/markdown.html )。我正在使用模板 R Markdown 文件,它构建了一个用于分析airquality数据集的管道。在手册的第3.6 节 Globals中,它说我可以运行some-globals目标块tar_interactive = TRUE并且应该得到消息:#> Run code and assign objects to the environment. 但是,此消息不会出现(没有消息出现)。

在执行第3.7 节目标定义时,会出现类似的问题。当我raw-data在 ( ) 上以交互模式运行块时tar_interactive = TRUE,手册说目标的 R 命令运行,执行了一些检查,并且#> Run code and assign objects to the environment应该出现相同的消息 ( )。此外,它表示返回值在内存中可用,并且普通的 R 代码块可以读取所述对象。提供的示例是一个 R 代码块,带有head(raw_data). 同样,当我运行块并且内存中没有可供读取的对象时,该消息Run code and assign...不会出现。相反,这是我运行块时在 R Studio 的 R 控制台中显示的输出:raw-dataraw_datahead(raw_data)raw-data

> tar_target(raw_data, airquality)
<tar_stem> 
  name: raw_data 
  command:
    airquality 
  format: rds 
  iteration method: vector 
  error mode: stop 
  memory mode: persistent 
  storage mode: main 
  retrieval mode: main 
  deployment mode: worker 
  priority: 0 
  resources:
    list() 
  cue:
    mode: thorough
    command: TRUE
    depend: TRUE
    format: TRUE
    iteration: TRUE
    file: TRUE 
  packages:
    biglm
    dplyr
    ggplot2
    readr
    tidyr 
  library:
    NULL

所以交互模式似乎不像手册中描述的那样工作。只要所有目标块都设置为tar_interactive = FALSE. 起初我想也许我必须在非交互模式下编织文档,然后,因为目标将在由设置的缓存中targets,我可以在交互模式下访问对象,但这也不起作用(如果它确实有效,它似乎会破坏首先在交互模式下对管道进行原型设计的目的)。我错过了什么吗?

> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

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

other attached packages:
[1] targets_0.7.0

loaded via a namespace (and not attached):
 [1] igraph_1.2.6      knitr_1.30        magrittr_2.0.1    tidyselect_1.1.0  munsell_0.5.0     colorspace_1.4-1 
 [7] R6_2.5.0          rlang_0.4.10      fansi_0.4.2       dplyr_1.0.7       tools_4.0.3       grid_4.0.3       
[13] data.table_1.13.6 gtable_0.3.0      xfun_0.21         utf8_1.1.4        cli_2.5.0         DBI_1.1.0        
[19] withr_2.4.2       ellipsis_0.3.2    yaml_2.2.1        digest_0.6.27     assertthat_0.2.1  tibble_3.1.2     
[25] lifecycle_1.0.0   crayon_1.4.1      processx_3.5.2    purrr_0.3.4       callr_3.7.0       ggplot2_3.3.5    
[31] codetools_0.2-16  ps_1.5.0          vctrs_0.3.8       glue_1.4.2        compiler_4.0.3    pillar_1.6.1     
[37] generics_0.1.0    scales_1.1.1      pkgconfig_2.0.3  
4

1 回答 1

0

我的问题是因为在某些时候我在“工具”>“全局选项”>“R Markdown”菜单中未选中“显示所有 R Markdown 文档的内联输出”,该菜单已从非 r 引擎代码块中删除了绿色的“运行”小箭头. 我不得不一个接一个地运行每一行代码。这没有正确使用目标引擎。重新选中该框会返回运行箭头并单击运行箭头允许目标引擎正确运行代码并返回预期的输出。

用户landau 帮助我确定在没有绿色运行箭头的情况下,在控制台中调用 rmarkdown::render() 将用于使用目标引擎运行目标块。

于 2021-09-27T21:53:47.067 回答