Я хотел бы загрузить и установить pandoc на компьютере с Windows 7, выполнив команду в R. Возможно ли это?
(Я знаю, что могу сделать это вручную, но когда я покажу это студентам - чем больше шагов я могу организовать в фрагменте кода R, тем лучше)
Я хотел бы загрузить и установить pandoc на компьютере с Windows 7, выполнив команду в R. Возможно ли это?
(Я знаю, что могу сделать это вручную, но когда я покажу это студентам - чем больше шагов я могу организовать в фрагменте кода R, тем лучше)
Как насчет того, чтобы просто загрузить самую последнюю версию установщика и запустить ее с R:
а) Определите самую последнюю версию 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'
Загрузите файл как binary
:
t <- tempfile(fileext = '.exe')
download.file(url, t, mode = 'wb')
И просто запустите его из R:
system(t)
Удалите ненужный файл после установки:
unlink(t)
PS: извините, тестировалось только на Windows XP
pat <- "//pandoc.googlecode.com/files/pandoc-[0-9.]+-setup.exe"; target.line <- grep(pat, page, value = TRUE); m <- regexpr(pat, target.line); regmatches(target.line, m)
(перед http
все еще нужно добавить http
).
- person G. Grothendieck; 25.02.2013
target.line<-
упал
- person G. Grothendieck; 25.02.2013