Сценарий 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 с помощью команды клавиатуры?
  • Печать новых строк с помощью print () в R
  • Добавление текста в таблицу grid.table
  • Глобальные и локальные переменные в R
  • Что делает функция invisible ()?
  • Заменить значения NA по строкам
  • Как автоматически включить все двухсторонние взаимодействия в модели glm в R
  • Добавить столбец с порядковым числом
  • Эффективно конвертировать обратную косую черту в косую черту в R
  • Как вы конвертируете даты / время из одного часового пояса в другой в R?
  • Interesting Posts

    В PowerPoint существует ли способ создания печатной версии анимированного слайда?

    Рисование нескольких строк в редакторе, например, блокнот

    Можно ли связать команды привязки ключей в возвышенном тексте 2?

    Почему мы используем if, else, если вместо множественного блока if, если тело является оператором return

    java.util.Date формат SSSSSS: если не микросекунды, то какие последние 3 цифры?

    Чтобы проверить настраиваемую директиву angularjs validation

    Как работает FileLock?

    Как установить цвет фона операции на белый программным путем?

    Как изменить размер расширенного раздела?

    Используют ли новые ключевые слова C # 5.0 «asynchronous» и «ожидающий» несколько ядер?

    Как уменьшить зону прокрутки в области трекпада Windows 8?

    цвет андроида между двумя цветами, в зависимости от процента?

    Singleton class в java

    Как создать задержку в Swift?

    Удалить атрибуты CSS «сверху» и «слева» с помощью jQuery

    Давайте будем гением компьютера.