Скажите, у меня есть следующие .R
файлы:
R / 01_script.R
cat("You are now in 01_script.R")
R / 01_script.R
cat("You are now in 01_script.R")
Я хотел бы поместить их в отдельный вызов / файл WORKFLOW.R
, который содержит оба этих файла:
WORKFLOW.R
source(here::here("R/01_script.R"))
source(here::here("R/02_script.R"))
Запустив это, я получаю следующее напечатанное на консоли:
You are now in 01_script.R
You are now in 02_script.R
Если я пытаюсь абстрагировать это в список и затем запустить sapply
, lapply
или purrr::map
, Я получаю более подробный вывод:
list_of_scripts <- list(
here::here("R/01_script.R"),
here::here("R/02_script.R")
)
lapply(list_of_scripts, source)
# You are now in 01_script.RYou are now in 02_script.R[[1]]
# [[1]]$value
# NULL
#
# [[1]]$visible
# [1] FALSE
#
#
# [[2]]
# [[2]]$value
# NULL
#
# [[2]]$visible
# [1] FALSE
# ...and similar results with either...
sapply(list_of_scripts, source)
# ...or this...
library(tidyverse)
list_of_scripts %>%
map(source)
Я не понимаю документацию source()
и не смог удалить подробный вывод. Я пробовал различные комбинации echo = FALSE
, print.eval = FALSE
, withAutoPrint(print. = FALSE)
, et c. но консоль печатает переменные $value
и $visible
в структуре списка.
Есть ли способ абстрагировать вызов source()
для нескольких файлов и сохранить "чистый" вывод консоли? Еще лучше, если вывод cat()
может автоматически вставлять символы новой строки \n
.