आर में पैरामीटर के साथ अनुरोध यूआरएल बनाने का सबसे अच्छा तरीका क्या है? अब तक मैं इसके साथ आया हूं:

library(magrittr)   
library(httr)
library(data.table)
url <- list(hostname = "geo.stat.fi/geoserver/vaestoalue/wfs",
            scheme = "https",
            query = list(service = "WFS",
                         version = "2.0.0",
                         request = "GetFeature",
                         typename = "vaestoalue:kunta_vaki2017",
                         outputFormat = "application/json")) %>% 
       setattr("class","url")
request <- build_url(url)

मेरे पास अब जो कोड है, उसके बारे में मुझे जो पसंद है, वह यह है कि मैं आसानी से पैरामीटर मान बदल सकता हूं और URL का पुनर्निर्माण कर सकता हूं।

साथ ही, परिणामी यूआरएल ठीक से एचटीएमएल एन्कोडेड है:

https://geo.stat.fi/geoserver/vaestoalue/wfs/?service=WFS&version=2.0.0&request=GetFeature&typename=vaestoalue%3Akunta_vaki2017&outputFormat=application%2Fjson

लेकिन डेटा.टेबल लाइब्रेरी लोड करना, केवल एक यूआरएल बनाने के लिए, बस सही नहीं लगता है। क्या ऐसा करना बेहतर है?

11
Willy 17 नवम्बर 2018, 14:22

1 उत्तर

सबसे बढ़िया उत्तर

URL बनाने के लिए आपको बिल्कुल data.table की आवश्यकता नहीं है। जैसा कि जोस ने नोट किया था, इसे एक एकल सुविधा फ़ंक्शन का उपयोग करने के लिए लोड किया गया था जिसकी आप नकल कर सकते हैं:

set_class <- function(o, v) { class(o) <- v ; invisible(o) }

साथ ही, जब तक कि लक्ष्य का उद्देश्य किसी साइट से URL बनाम केवल पढ़ा गया डेटा न हो, आप केवल httr क्रियाओं का उपयोग भी कर सकते हैं:

httr::GET(
  url = "https://geo.stat.fi/geoserver/vaestoalue/wfs",
  query = list(
    service = "WFS",
    version = "2.0.0",
    request = "GetFeature",
    typename = "vaestoalue:kunta_vaki2017",
    outputFormat = "application/json"
  )
) -> res


dat <- httr::content(res)

str(dat, 1)
## List of 5
##  $ type         : chr "FeatureCollection"
##  $ totalFeatures: int 311
##  $ features     :List of 311
##  $ crs          :List of 2
##  $ bbox         :List of 4
4
hrbrmstr 17 नवम्बर 2018, 13:59