Подтвердить что ты не робот

Выделение R script из github для глобального использования сеанса изнутри функции-обертки?

Я могу создать R script, хранящийся на github (используя "сырую" текстовую ссылку) следующим образом:

# load package
require(RCurl)

# check 1
ls()
#character(0)

# read script lines from website
u <- "https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper.R"
script <- getURL(u, ssl.verifypeer = FALSE)
eval(parse(text = script))

# clean-up
rm("script", "u")

# check 2
ls()
#[1] "bingSearchXScraper"

Однако, что мне действительно хотелось бы сделать, это обернуть это функцией. Здесь я сталкиваюсь с проблемами, и я подозреваю, что это имеет какое-то отношение к функциям script, существующим только локально внутри функции, в которой он вызывал. Например, вот что я делаю для:

source_github <- function(u) {
  # load package
  require(RCurl)

  # read script lines from website and evaluate
  script <- getURL(u, ssl.verifypeer = FALSE)
  eval(parse(text = script))
}  

source_github("https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper.R")

Большое спасибо заранее за ваше время.

4b9b3361

Ответ 1

Использование:

 eval(parse(text = script),envir=.GlobalEnv)

чтобы помещать результаты в пространство поиска по умолчанию. Переписывание всего остального с одинаковыми именами, конечно.