2011-11-22 11 views
17

私は次のように(「生の」テキストリンクを使用して)githubの上で開催されたRスクリプトを調達することができますGithubのRスクリプトをラッパー関数内からグローバルに使用するには?

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

お時間をいただき、ありがとうございます。

+4

devtoolsパッケージのsource_url()関数は役に立ちますか? –

答えて

16

用途:

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

デフォルトの検索スペースに結果を固執します。もちろん、同じ名前のものを上書きします。

+0

完璧、ちょうど私が必要なもの! –

+0

Spacedmanさん、次の**共有可能なリンクを使用して** Googleドライブ**から「test_Google Drive_source.R」という名前のRファイルを取得する方法が不思議でした:** 'source(" https://drive.google.com/file/d/0B5V8AyEFBTmXUDctVlB Cc2ZyNUk/view?usp = sh aring ")' – rnorouzian

関連する問題