Извлечение R-скрипта из github, для глобального использования сеанса, из функции-оболочки? - PullRequest
17 голосов
/ 22 ноября 2011

Я могу получить R-скрипт, содержащийся на github (используя текстовую ссылку «raw»), следующим образом:

# 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"

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

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")

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

1 Ответ

16 голосов
/ 22 ноября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...