当我在“工具”选项卡中编辑我的 R 代码片段时,为什么它们在控制台中不可用?
When I edit my R snippets in the Tools tab, why are they not available in the console?
问题:
我已导航到 工具>全局选项...>代码 --> 编辑片段... 并且可以看到我应该有权访问的可用片段,编辑添加更多我自己的文件。我添加了一个片段
snippet tryCatch
${1:variable} <- tryCatch({
}, warning = function(w) {
message(sprintf("Warning in %s: %s", deparse(w[["call"]]), w[["message"]]))
}, error = function(e) {
message(sprintf("Error in %s: %s", deparse(e[["call"]]), e[["message"]]))
}, finally = {
})
但在我的 interactive()
R session 中无法识别。我如何添加片段,知道为什么编辑不起作用吗?
背景:
我最近接触了 R snippets
、pre-written 部分代码,以便在 R 控制台上使用字符串检索。我在 YouTube 上看到很多人这样做没有问题。我正在尝试编辑文件以自定义我自己的片段,以加快对 assert::assert()
和 tryCatch()
的常用调用的编写过程。我查看了片段的文件位置以查看 ~\AppData\Roaming\RStudio\snippets\r.snippets
中的内容。我在这两个地方都编辑了文件并重新启动 IDE 和我的 R session 无济于事,我唯一可以访问的片段是从 shinysnippets
.
预加载的片段
r.snippets
文件;
snippet module
${1:name}ui <- function(id){
ns <- NS(id)
tagList(
[=11=]
)
}
${1:name} <- function(input, output, session){
ns <- session$ns
}
# Copy in UI
#${1:name}ui("${1:name}ui")
# Copy in server
#callModule(${1:name}, "${1:name}ui")
snippet observe_event
observeEvent( ${1:event} , {
[=11=]
})
snippet with_progress
withProgress( message = "${1:message}" , {
[=11=]
})
snippet aa
${1:dataset} <- ${1:dataset} %>% [=11=]
snippet sidebar_page
library(shiny)
ui <- fluidPage(
titlePanel( "${1:title}" ),
sidebarLayout(
sidebarPanel(
),
mainPanel(
)
)
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
snippet tryCatch
${1:variable} <- tryCatch({
}, warning = function(w) {
message(sprintf("Warning in %s: %s", deparse(w[["call"]]), w[["message"]]))
}, error = function(e) {
message(sprintf("Error in %s: %s", deparse(e[["call"]]), e[["message"]]))
}, finally = {
})
snippet checkData
checkmate::checkDate(
from,
upper = today(),
len = 1
)
snippet assert
assert::assert(
,
msg = "\n3[31mx3[39m Error:\n "
)
当在 cmd-line 中输入 observe_event
时,您会看到输入上述代码块的选择,光标会自动在 $
锚点之间切换。
Session 信息
devtools::sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] assert_1.0.1 rameritrade_0.1.5 httr_1.4.2
[4] quantmod_0.4.18 RVerbalExpressions_0.1.0 PerformanceAnalytics_2.0.4
[7] tbl2xts_1.0.4 bizdays_1.0.9 tictoc_1.0.1
[10] glue_1.6.1 here_1.0.1 polite_0.1.1
[13] rvest_1.0.2 Riex_1.0.2 TTR_0.24.3
[16] xts_0.12.1 zoo_1.8-9 lubridate_1.8.0
[19] forcats_0.5.1 stringr_1.4.0 dplyr_1.0.8
[22] purrr_0.3.4 readr_2.1.2 tidyr_1.2.0
[25] ggplot2_3.3.5 tidyverse_1.3.1 plyr_1.8.6
[28] furrr_0.2.3 future_1.24.0 tidyjson_0.3.1
[31] reshape2_1.4.4 ProjectTemplate_0.10.2 tibble_3.1.6
[34] digest_0.6.29
loaded via a namespace (and not attached):
[1] utf8_1.2.2 tidyselect_1.1.2 lme4_1.1-28
[4] grid_4.1.0 robotstxt_0.7.13 munsell_0.5.0
[7] codetools_0.2-18 effectsize_0.6.0.1 miniUI_0.1.1.1
[10] withr_2.5.0 colorspace_2.0-3 config_0.3.1
[13] knitr_1.37 rstudioapi_0.13 listenv_0.8.0
[16] emmeans_1.7.2 httr2_0.1.1 urltools_1.7.3
[19] roll_1.1.6 polyclip_1.10-0 farver_2.1.0
[22] datawizard_0.3.0 rprojroot_2.0.2 parallelly_1.30.0
[25] vctrs_0.3.8 generics_0.1.2 xfun_0.30
[28] ipred_0.9-12 R6_2.5.1 shinysnippets_0.0.0.9000
[31] cachem_1.0.6 assertthat_0.2.1 promises_1.2.0.1
[34] scales_1.1.1 nnet_7.3-16 ggExtra_0.9
[37] gtable_0.3.0 miceadds_3.11-6 globals_0.14.0
[40] timeDate_3043.102 rlang_1.0.1 berryFunctions_1.21.0
[43] splines_4.1.0 lazyeval_0.2.2 keyring_1.3.0
[46] broom_0.7.12 checkmate_2.0.0 yaml_2.2.1
[49] abind_1.4-5 modelr_0.1.8 backports_1.4.1
[52] httpuv_1.6.5 tools_4.1.0 lava_1.6.10
[55] usethis_2.1.5 ellipsis_0.3.2 tsibble_1.1.1
[58] Rcpp_1.0.8 timetk_2.7.0 rpart_4.1-15
[61] slider_0.2.2 haven_2.4.3 fs_1.5.2
[64] magrittr_2.0.2 data.table_1.14.2 brochure_0.0.0.9023
[67] warp_0.2.0 triebeard_0.3.0 reprex_2.0.1
[70] mvtnorm_1.1-3 sjmisc_2.8.9 pkgload_1.2.4
[73] hms_1.1.1 mime_0.12 xtable_1.8-4
[76] XML_3.99-0.9 sjstats_0.18.1 readxl_1.3.1
[79] testthat_3.0.4 compiler_4.1.0 mice_3.14.0
[82] crayon_1.5.0 minqa_1.2.4 htmltools_0.5.2
[85] later_1.3.0 tzdb_0.2.0 RcppParallel_5.1.5
[88] DBI_1.1.2 tweenr_1.0.2 sjlabelled_1.1.8
[91] dbplyr_2.1.1 MASS_7.3-54 rappdirs_0.3.3
[94] boot_1.3-28 Matrix_1.3-3 cli_3.2.0
[97] mitools_2.4 runner_0.4.1 quadprog_1.5-8
[100] parallel_4.1.0 insight_0.16.0 gower_1.0.0
[103] golem_0.3.2 pkgconfig_2.0.3 microbenchmark_1.4.9
[106] recipes_0.2.0 roxygen2_7.1.2 xml2_1.3.3
[109] hardhat_0.2.0 estimability_1.3 prodlim_2019.11.13
[112] anytime_0.3.9 attempt_0.3.1 parameters_0.16.0
[115] tidyquant_1.0.3 RQuantLib_0.4.15 cellranger_1.1.0
[118] curl_4.3.1 shiny_1.7.1 gtools_3.9.2
[121] rjson_0.2.21 nloptr_2.0.0 bench_1.1.2
[124] lifecycle_1.0.1 nlme_3.1-152 jsonlite_1.7.3
[127] desc_1.4.1 fansi_1.0.2 pillar_1.7.0
[130] lattice_0.20-44 fastmap_1.1.0 survival_3.2-11
[133] ratelimitr_0.4.1 bayestestR_0.11.5 ggforce_0.3.3
[136] class_7.3-19 stringi_1.6.2 performance_0.8.0
[139] Quandl_2.11.0 rsample_0.1.1 memoise_2.0.1
[142] future.apply_1.8.1
代码段文件对空格敏感,请改用制表符。
第一个片段应该可以正常工作。第二个将出现在自动完成中,但不会执行任何操作。
RStudio 在保存片段文件时识别新片段,不需要重新启动 RStudio。如果您希望 tryCatch
代码段填充不同用例的特定内容,也可以通过编程方式完成此操作。
正如@DonaldSeinen 指出的那样,R 片段因对空格和制表符敏感而臭名昭著。在编辑 R 代码段时,您需要确保文本字段中没有红色空格,这会使代码段无用。
提示
编写代码片段时,请使用tab
以解决此问题。
问题:
我已导航到 工具>全局选项...>代码 --> 编辑片段... 并且可以看到我应该有权访问的可用片段,编辑添加更多我自己的文件。我添加了一个片段
snippet tryCatch
${1:variable} <- tryCatch({
}, warning = function(w) {
message(sprintf("Warning in %s: %s", deparse(w[["call"]]), w[["message"]]))
}, error = function(e) {
message(sprintf("Error in %s: %s", deparse(e[["call"]]), e[["message"]]))
}, finally = {
})
但在我的 interactive()
R session 中无法识别。我如何添加片段,知道为什么编辑不起作用吗?
背景:
我最近接触了 R snippets
、pre-written 部分代码,以便在 R 控制台上使用字符串检索。我在 YouTube 上看到很多人这样做没有问题。我正在尝试编辑文件以自定义我自己的片段,以加快对 assert::assert()
和 tryCatch()
的常用调用的编写过程。我查看了片段的文件位置以查看 ~\AppData\Roaming\RStudio\snippets\r.snippets
中的内容。我在这两个地方都编辑了文件并重新启动 IDE 和我的 R session 无济于事,我唯一可以访问的片段是从 shinysnippets
.
r.snippets
文件;
snippet module
${1:name}ui <- function(id){
ns <- NS(id)
tagList(
[=11=]
)
}
${1:name} <- function(input, output, session){
ns <- session$ns
}
# Copy in UI
#${1:name}ui("${1:name}ui")
# Copy in server
#callModule(${1:name}, "${1:name}ui")
snippet observe_event
observeEvent( ${1:event} , {
[=11=]
})
snippet with_progress
withProgress( message = "${1:message}" , {
[=11=]
})
snippet aa
${1:dataset} <- ${1:dataset} %>% [=11=]
snippet sidebar_page
library(shiny)
ui <- fluidPage(
titlePanel( "${1:title}" ),
sidebarLayout(
sidebarPanel(
),
mainPanel(
)
)
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
snippet tryCatch
${1:variable} <- tryCatch({
}, warning = function(w) {
message(sprintf("Warning in %s: %s", deparse(w[["call"]]), w[["message"]]))
}, error = function(e) {
message(sprintf("Error in %s: %s", deparse(e[["call"]]), e[["message"]]))
}, finally = {
})
snippet checkData
checkmate::checkDate(
from,
upper = today(),
len = 1
)
snippet assert
assert::assert(
,
msg = "\n3[31mx3[39m Error:\n "
)
当在 cmd-line 中输入 observe_event
时,您会看到输入上述代码块的选择,光标会自动在 $
锚点之间切换。
Session 信息
devtools::sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] assert_1.0.1 rameritrade_0.1.5 httr_1.4.2
[4] quantmod_0.4.18 RVerbalExpressions_0.1.0 PerformanceAnalytics_2.0.4
[7] tbl2xts_1.0.4 bizdays_1.0.9 tictoc_1.0.1
[10] glue_1.6.1 here_1.0.1 polite_0.1.1
[13] rvest_1.0.2 Riex_1.0.2 TTR_0.24.3
[16] xts_0.12.1 zoo_1.8-9 lubridate_1.8.0
[19] forcats_0.5.1 stringr_1.4.0 dplyr_1.0.8
[22] purrr_0.3.4 readr_2.1.2 tidyr_1.2.0
[25] ggplot2_3.3.5 tidyverse_1.3.1 plyr_1.8.6
[28] furrr_0.2.3 future_1.24.0 tidyjson_0.3.1
[31] reshape2_1.4.4 ProjectTemplate_0.10.2 tibble_3.1.6
[34] digest_0.6.29
loaded via a namespace (and not attached):
[1] utf8_1.2.2 tidyselect_1.1.2 lme4_1.1-28
[4] grid_4.1.0 robotstxt_0.7.13 munsell_0.5.0
[7] codetools_0.2-18 effectsize_0.6.0.1 miniUI_0.1.1.1
[10] withr_2.5.0 colorspace_2.0-3 config_0.3.1
[13] knitr_1.37 rstudioapi_0.13 listenv_0.8.0
[16] emmeans_1.7.2 httr2_0.1.1 urltools_1.7.3
[19] roll_1.1.6 polyclip_1.10-0 farver_2.1.0
[22] datawizard_0.3.0 rprojroot_2.0.2 parallelly_1.30.0
[25] vctrs_0.3.8 generics_0.1.2 xfun_0.30
[28] ipred_0.9-12 R6_2.5.1 shinysnippets_0.0.0.9000
[31] cachem_1.0.6 assertthat_0.2.1 promises_1.2.0.1
[34] scales_1.1.1 nnet_7.3-16 ggExtra_0.9
[37] gtable_0.3.0 miceadds_3.11-6 globals_0.14.0
[40] timeDate_3043.102 rlang_1.0.1 berryFunctions_1.21.0
[43] splines_4.1.0 lazyeval_0.2.2 keyring_1.3.0
[46] broom_0.7.12 checkmate_2.0.0 yaml_2.2.1
[49] abind_1.4-5 modelr_0.1.8 backports_1.4.1
[52] httpuv_1.6.5 tools_4.1.0 lava_1.6.10
[55] usethis_2.1.5 ellipsis_0.3.2 tsibble_1.1.1
[58] Rcpp_1.0.8 timetk_2.7.0 rpart_4.1-15
[61] slider_0.2.2 haven_2.4.3 fs_1.5.2
[64] magrittr_2.0.2 data.table_1.14.2 brochure_0.0.0.9023
[67] warp_0.2.0 triebeard_0.3.0 reprex_2.0.1
[70] mvtnorm_1.1-3 sjmisc_2.8.9 pkgload_1.2.4
[73] hms_1.1.1 mime_0.12 xtable_1.8-4
[76] XML_3.99-0.9 sjstats_0.18.1 readxl_1.3.1
[79] testthat_3.0.4 compiler_4.1.0 mice_3.14.0
[82] crayon_1.5.0 minqa_1.2.4 htmltools_0.5.2
[85] later_1.3.0 tzdb_0.2.0 RcppParallel_5.1.5
[88] DBI_1.1.2 tweenr_1.0.2 sjlabelled_1.1.8
[91] dbplyr_2.1.1 MASS_7.3-54 rappdirs_0.3.3
[94] boot_1.3-28 Matrix_1.3-3 cli_3.2.0
[97] mitools_2.4 runner_0.4.1 quadprog_1.5-8
[100] parallel_4.1.0 insight_0.16.0 gower_1.0.0
[103] golem_0.3.2 pkgconfig_2.0.3 microbenchmark_1.4.9
[106] recipes_0.2.0 roxygen2_7.1.2 xml2_1.3.3
[109] hardhat_0.2.0 estimability_1.3 prodlim_2019.11.13
[112] anytime_0.3.9 attempt_0.3.1 parameters_0.16.0
[115] tidyquant_1.0.3 RQuantLib_0.4.15 cellranger_1.1.0
[118] curl_4.3.1 shiny_1.7.1 gtools_3.9.2
[121] rjson_0.2.21 nloptr_2.0.0 bench_1.1.2
[124] lifecycle_1.0.1 nlme_3.1-152 jsonlite_1.7.3
[127] desc_1.4.1 fansi_1.0.2 pillar_1.7.0
[130] lattice_0.20-44 fastmap_1.1.0 survival_3.2-11
[133] ratelimitr_0.4.1 bayestestR_0.11.5 ggforce_0.3.3
[136] class_7.3-19 stringi_1.6.2 performance_0.8.0
[139] Quandl_2.11.0 rsample_0.1.1 memoise_2.0.1
[142] future.apply_1.8.1
代码段文件对空格敏感,请改用制表符。
第一个片段应该可以正常工作。第二个将出现在自动完成中,但不会执行任何操作。
RStudio 在保存片段文件时识别新片段,不需要重新启动 RStudio。如果您希望 tryCatch
代码段填充不同用例的特定内容,也可以通过编程方式完成此操作。
正如@DonaldSeinen 指出的那样,R 片段因对空格和制表符敏感而臭名昭著。在编辑 R 代码段时,您需要确保文本字段中没有红色空格,这会使代码段无用。
提示
编写代码片段时,请使用tab
以解决此问题。