style img div code r

img - Obtención de script R sobre HTTPS



tags$img shiny (6)

¿Hay alguna manera de obtener una secuencia de comandos R de la web?

por ejemplo, source(''http://github.com/project/R/file.r'')

Motivo: actualmente tengo un proyecto que me gustaría poner a disposición para su uso pero aún no está listo para ser empaquetado. Por lo tanto, sería genial proporcionar a las personas un solo archivo para su origen desde la web (que luego generará todos los archivos de funciones individuales).

En una inspección más cercana, el problema parece ser https. ¿Cómo me fuente este archivo?

https://raw.github.com/hadley/stringr/master/R/c.r


Windows:

Si Internet Explorer está configurado para acceder a la web utilizando el proxy de su organización, puede indicar a R que use esta configuración de IE en lugar de la configuración de R. predeterminada. Este cambio se puede hacer una vez por los siguientes pasos:

  1. Guarda tu trabajo y cierra todas las sesiones R que tengas abiertas.
  2. Edita el siguiente archivo. (Nota: su ruta exacta diferirá según su instalación R)

    C: / Archivos de programa / R / R-2.15.2 / etc / Rprofile.site

Abra este archivo "Rprofile.site" en el Bloc de notas y agregue la siguiente línea en una nueva línea al final del archivo:

utils::setInternet2(TRUE)

Ahora puede abrir una nueva sesión R y reintentar su comando "fuente".

Linux alikes:

Utilice la sugerencia de G. Grothendieck. En el símbolo del sistema dentro de tipo R:

source(pipe(paste("wget -O -", "https://github.com/enter/your/url/here.r")))

Puede obtener un error que dice:

cannot verify certificate - - - - Self-signed certificate encountered.

En este punto, depende de usted decidir si confía en la persona que expide el certificado autofirmado y proceder o detener.

Si decide continuar, puede conectarse de forma insegura de la siguiente manera:

source(pipe(paste("wget -O -", "https://github.com/enter/your/url.r", "--no-check-certificate")))

Para más detalles, vea lo siguiente:

Ver apartado 2.19.

Preguntas similares aquí:


Esto me funciona en windows:

library(RCurl) # load functions and scripts from github ---------------------------- fn1 <- getURL("https://raw.githubusercontent.com/SanjitNarwekar/Advanced-R-Programming/master/fn_factorial_loop.R", ssl.verifypeer = FALSE) eval(parse(text = fn1))


Los métodos aquí me estaban dando el siguiente error desde github:

OpenSSL: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)

Usé la siguiente función para resolverlo:

github.download = function(url) { fname <- tempfile() system(sprintf("curl -3 %s > %s", url, fname)) return(fname) } source(github.download(''http://github.com/project/R/file.r''))

¡Espero que ayude!


Puedes usar el source_url en la librería devtools

library(devtools) source_url(''https://raw.github.com/hadley/stringr/master/R/c.r'')

Esta es una envoltura para el método RCurl por @ROLO


Sí puedes, intenta ejecutar este tutorial R:

source("http://www.mayin.org/ajayshah/KB/R/tutorial.R")

( Source )

Https solo se admite en Windows, cuando R se inicia con la opción de línea de comandos --internet2 (ver FAQ ):

> source("https://pastebin.com/raw.php?i=zdBYP5Ft") > test() [1] "passed"

Sin esta opción, o en linux, aparecerá el error "esquema de URL no admitido". En ese caso, recurra a la solución sugerida por @ulidtko , o:

Aquí hay una forma de hacerlo usando RCurl , que también admite https:

library(RCurl) eval( expr = parse( text = getURL("http://www.mayin.org/ajayshah/KB/R/tutorial.R", ssl.verifypeer=FALSE) ))

(Puede eliminar el ssl.verifypeer si el certificado ssl es válido)


Sí, es posible y funcionó de inmediato.

R> source("http://pastebin.com/raw.php?i=zdBYP5Ft") R> test() [1] "passed"

En cuanto a la parte HTTPS, no es compatible con el código R interno. Sin embargo, R puede usar utilidades externas como wget o curl para obtener https: // URL. Uno tendrá que escribir código adicional para poder source los archivos.

El código de muestra podría ser así:

wget.and.source <- function(url) { fname <- tempfile() download.file(url, fname, method="wget") source(fname) unlink(fname) }

También hay una solución solo para Windows: inicie R con la opción de línea de comandos --internet2 . Esto cambiará todo el código de Internet en R para usar IE y, por lo tanto, funcionará HTTPS.