Сценарий Sourcing R поверх HTTPS

Есть ли способ запустить R-скрипт из Интернета?

например source('http://github.com/project/R/file.r')

Причина: В настоящее время у меня есть проект, который я хотел бы сделать доступным для использования, но пока не готов к пакету. Поэтому было бы здорово предоставить людям один файл для источника из Интернета (который затем будет загружать все отдельные файлы функций).

При ближайшем рассмотрении проблема, похоже, https. Как я могу загрузить этот файл?

 https://raw.github.com/hadley/stringr/master/R/cr 

Да, вы можете попробовать запустить этот учебник R:

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

( Источник )

Https поддерживается только в Windows, когда R запускается с --internet2 командной строки --internet2 (см. Часто задаваемые вопросы ):

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

Без этой опции или в linux вы получите сообщение об ошибке «неподдерживаемая схема URL». В этом случае прибегнуть к решению, предложенному @ulidtko , или:

Вот как это сделать, используя RCurl , который также поддерживает https:

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

(Вы можете удалить ssl.verifypeer если сертификат ssl действителен)

Вы можете использовать source_url в библиотеке devtools

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

Это shell для метода RCurl by @ROLO

Да, это возможно и сработало для меня сразу.

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

Что касается части HTTPS, она не поддерживается внутренним R-кодом. Однако R может использовать внешние утилиты, такие как wget или curl для извлечения https: // URL-адресов. Нужно будет написать дополнительный код, чтобы иметь возможность source файлов.

Пример кода может выглядеть так:

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

Также есть решение для Windows: запустите R с --internet2 командной строки --internet2 . Это переключит весь интернет-код в R на IE, и, следовательно, HTTPS будет работать.

Окна:

Если Internet Explorer настроен для доступа к сети с использованием прокси-сервера вашей организации, вы можете направить R, чтобы использовать эти настройки IE вместо стандартных настроек R. Это изменение можно сделать одним из следующих шагов:

  1. Сохраните свою работу и закройте все сеансы R, которые могут быть открыты.
  2. Отредактируйте следующий файл. (Примечание. Ваш точный путь будет отличаться в зависимости от вашей установки R)

    C: \ Program Files \ R \ R-2.15.2 \ etc \ Rprofile.site

Откройте этот файл «Rprofile.site» в «Блокноте» и добавьте следующую строку в новую строку в конце файла:

 utils::setInternet2(TRUE) 

Теперь вы можете открыть новый сеанс R и повторить команду «source».

Linux alikes:

Используйте предложение Г. Гротендика. В командной строке внутри R-типа:

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

Вы можете получить сообщение об ошибке:

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

На данный момент вам решать, доверять ли вы лицу, выдающему самозаверяющий сертификат, и продолжить или прекратить.

Если вы решите продолжить, вы можете подключиться небезопасно следующим образом:

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

Для получения дополнительной информации см. Следующее:

См. Раздел 2.19

  • Документация CRAN R 2.19
  • wget раздел 2.8 для “no-check-certificate”

Похожие вопросы здесь:

  • Stackoverflow setInternet2 обсуждение
  • Обсуждение конфигурации прокси-сервера Stackoverflow

Методы здесь приводили мне следующую ошибку из github:

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

Для решения этой проблемы я использовал следующую функцию:

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

Надеюсь, это поможет!

Это работает для меня в 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)) 
  • Извлечение строк для первого вхождения переменной в фрейм данных
  • R усиливает местный охват
  • Добавить столбец с подсчетами другого
  • Получить «встроенные nul (s), найденные во вводе» при чтении csv, используя read.csv ()
  • условие имеет длину> 1, и только первый элемент будет использоваться в if else statement
  • Настройка прокси для R
  • Укажите количество последовательных значений
  • Lapply для добавления столбцов в каждый Dataframe в списке
  • Загрузка нескольких файлов одновременно?
  • Как удалить все объекты, кроме одного из рабочей области в R?
  • как вернуть число десятичных знаков в R
  • Давайте будем гением компьютера.