В качестве способа изучения того, как сделать пакет в R для Denver RUG, я решил, что было бы неплохим проектом написать R-обертку вокруг API datasciencetoolkit. Основные инструменты R поставляются из пакета RCurl, как вы можете себе представить. Я застрял в кажущейся простой проблеме, и я надеюсь, что кто-то из этого форума сможет указать мне в правильном направлении. Основная проблема заключается в том, что я не могу использовать postForm() для передачи строки без ключа в качестве части параметра данных в curl, то есть curl -d "string" "address_to_api".
Например, из командной строки я могу сделать
$ curl -d "Tim O'Reilly, Archbishop Huxley" "http://www.datasciencetoolkit.org/text2people"
с успехом. Однако кажется, что postForm() требует явного ключа при передаче дополнительных аргументов в запрос POST. Я просмотрел код datasciencetoolkit и документы разработчиков для возможного ключа, но, похоже, ничего не может найти.
В стороне, довольно просто передать входные данные через запрос GET другим частям API DSTK. Например,
ip2coordinates <- function(ip) {
api <- "http://www.datasciencetoolkit.org/ip2coordinates/"
result <- getURL(paste(api, URLencode(ip), sep=""))
names(result) <- "ip"
return(result)
}
ip2coordinates('67.169.73.113')
даст желаемые результаты.
Чтобы быть ясным, я прочитал документы RCurl на сайте DTL omegahat, документы RCurl с пакетом и страницу с завитушками. Тем не менее, я пропускаю что-то принципиальное относительно curl (или, возможно,.opts() в функции postForm()), и я не могу его получить.
В python я мог бы в принципе сделать "необработанный" запрос POST с использованием httplib.HTTPConnection - что-то подобное в R? Я также посмотрел на функцию simplePostToHost в пакете httpRequest, и он просто заблокировал мой сеанс R (для него также нужен ключ).
FWIW, я использую R 2.13.0 на Mac 10.6.7.
Любая помощь очень ценится. Весь код скоро будет доступен на github, если вы заинтересованы в том, чтобы поиграть с набором инструментов для научных исследований.
Приветствия.