2013-02-25 2 views
7

Я хотел бы загрузить и установить pandoc на машину Windows 7, выполнив команду в R. Возможно ли это?Можно ли установить pandoc на windows с помощью команды R?

(я знаю, что могу сделать это вручную, но когда я хотел бы показать это студентам - чем больше шагов, я могу организовать в пределах R кода фрагмента - тем лучше)

ответ

11

насчет просто загрузив последнюю версию монтажника и начиная что от R:

  1. а) определить самую последнюю версию Pandoc и захватить URL с помощью пакета XML:

    library(XML) 
    page  <- readLines('http://code.google.com/p/pandoc/downloads/list', warn = FALSE) 
    pagetree <- htmlTreeParse(page, error=function(...){}, useInternalNodes = TRUE, encoding='UTF-8') 
    url  <- xpathSApply(pagetree, '//tr[2]//td[1]//a ', xmlAttrs)[1] 
    url  <- paste('http', url, sep = ':') 
    

    б) Или применить некоторые магические регулярных выражений благодаря @ G.Grothendieck вместо (нет необходимости для XML пакета таким образом):

    page <- readLines('http://code.google.com/p/pandoc/downloads/list', warn = FALSE) 
    pat <- "//pandoc.googlecode.com/files/pandoc-[0-9.]+-setup.exe" 
    line <- grep(pat, page, value = TRUE); m <- regexpr(pat, line) 
    url <- paste('http', regmatches(line, m), sep = ':') 
    

    с) Или просто проверить самую последнюю версию вручную, если вы чувствуете как то:

    url <- 'http://pandoc.googlecode.com/files/pandoc-1.10.1-setup.exe' 
    
  2. Скачать файл в binary:

    t <- tempfile(fileext = '.exe') 
    download.file(url, t, mode = 'wb') 
    
  3. И просто запустить его из R:

    system(t) 
    
  4. Удалите ненужный файл после установки:

    unlink(t) 
    

PS: извините, только протестирован на Windows XP

+0

Great! Любой способ автоматически распознать последнюю версию? –

+1

@TalGalili: Конечно, я добавил многообещающий рабочий способ распознать последнюю версию. – daroczig

+0

Ах, и жаль частых изменений, я больше не буду трогать этот пост. Я обещаю :) – daroczig

Смежные вопросы