2011-11-22 3 views
17

I ('ham' metin bağlantısını kullanarak) github düzenlenen bir R komut olabilir kaynak:Global oturum kullanımı için github'dan bir R komut dosyasını bir sarıcı işlevinden mi kaynaklamak istiyorsunuz? aşağıdaki gibi

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

Ancak, ne gerçekten yapmak istediğim bir işlevde olduğu kadar tamamlamayı olduğunu. Bu, problemlerle karşılaştığım ve komut dosyasındaki işlevlerin, yalnızca çağrıldığı işlev içinde yerel olarak mevcut olduğundan şüpheleniyorum. Örneğin, burada hedeflediğim bir şey var:

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

Zaman ayırdığınız için şimdiden çok teşekkürler.

+4

DevOols paketindeki source_url() işlevi yardımcı oluyor mu? –

cevap

16

Kullanım:

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

Varsayılan arama uzaya sonuçlarını sopa. Elbette, aynı isimlere sahip başka bir şeyin üzerine yazarak.

+0

Mükemmel, tam olarak ihtiyacım olan şey! –

+0

Spacedman, Aşağıdaki ** paylaşılabilir bağlantıyı kullanarak ** Google Drive ** 'dan' test_Google Drive_source.R 'adlı bir R kaynağına nasıl kaynak oluşturabileceğimi merak ettim: ** 'kaynak (" https://drive.google.com/dosya/d/0B5V8AyEFBTmXUDctVlB Cc2ZyNUk/mi? USP = sh aring ") ' – rnorouzian