В качестве способа изучения того, как создать пакет на R для 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, документы RCurl с пакетом и справочную страницу curl. Тем не менее, мне не хватает чего-то фундаментального в отношении curl (или, возможно, .opts () в функции postForm ()), и я не могу этого понять.
В python я мог бы в основном сделать «сырой» POST-запрос, используя httplib.HTTPConnection - доступно ли что-то подобное в R? Я также посмотрел на функцию simplePostToHost в пакете httpRequest, и она, казалось, просто заблокировала мою сессию R (кажется, что также требуется ключ).
FWIW, я использую R 2.13.0 на Mac 10.6.7.
Любая помощь очень ценится. Весь код скоро будет доступен на github, если вам интересно поиграть с инструментарием обработки данных.
Приветствие.