【问题标题】:How to source multiple files in shiny server?如何在闪亮的服务器中获取多个文件?
【发布时间】:2021-08-23 13:19:25
【问题描述】:

我正在尝试从文件夹中为服务器文件加载一些代码。我尝试了以下方法,但没有奏效。

sapply(list.files(pattern="[.]R$", path="R/", full.names=TRUE), source)
sourcefiles <- list.files(full.names=TRUE, recursive = TRUE, pattern = "[.]R$")
sapply(sourcefiles, source, chdir = TRUE)
lapply(list.files(pattern = "[.]R$", recursive = TRUE), source)

此代码有效,但我必须单独调用它们。

source(file.path("./R/modules/", "plot.R"),  local = TRUE)$value  

source(file.path("./R/modules/", "freq.R"),  local = TRUE)$value  

我正在寻找一种方法来应用函数来循环浏览文件夹中的文件。

【问题讨论】:

  • 我认为这个答案可以帮助你:stackoverflow.com/questions/67764752/…
  • sapply(list.files(pattern="[.]R$", path="R/", full.names=TRUE), source) 在普通脚本中工作。我猜它在shiny 中工作有问题。你能展示你闪亮的代码并展示你如何以及在哪里使用它吗?

标签: r for-loop shiny apply lapply


【解决方案1】:

此代码获取主目录中所有文件的名称,并过滤 .R 中的名称并映射源匹配的名称。

library(purrr)
library(stringr)

list.files(path = '~') %>%
    str_subset('\\.R') %>% 
    map(~source(.x))

【讨论】:

  • 这似乎可行,但我无法让它在闪亮的应用程序中运行。
  • 我没有收到任何错误,因为当我运行闪亮的应用程序时,模块似乎没有连接。
  • 管道 walk(~source(.x, local = TRUE)) 而不是 map(~source(.x)) 有效吗?
猜你喜欢
  • 2017-01-13
  • 2014-10-05
  • 1970-01-01
  • 2019-12-03
  • 2016-05-08
  • 2021-11-07
  • 2021-03-10
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多