Closed jhuovari closed 2 years ago
Me tarvitaan kuitenkin ainakin tullista dl_filterin kautta tietoja. yaml:ssahan voisi olalla tiedot: -kohdan sijaan olla dl_filter, jolloin tiedot haettaisiin sen kautta.
Vai onko helpompi tehdä tidy-taulukot? Meillä on sekä metsä että maatalouspuolella joitain tietoja, jossa tuotteet haetaan CN8 tasolta. @itkonen
Nyt kun tulli-datoissa on uusi api, joka hoitaa hakujen palastelut, tuon voisi hoitaa suhteellisen helposti myös yaml_to_excel
funktiossa. Voin kirjoitaa funktion niin, että tulli-datan tapauksessa tiedot syötetään filteröinnin sijaan data-funktioon.
Jos esimerkiksi haette CN8 listauksen koodit komennolla
data("tulli/uljas_cn", dl_filter = list(
`Tavaraluokitus CN8` = NA
))
niin siitä pääse katsomaan, missä muodossa koodit pitää syöttää data-funktiolle. (Kun dl_filterin listaan laittaa nimetyn NA-arvon, funktio palauttaa tuon nimisen luokituksen kaikki vaihtoehdot). Jos haluatte käyttää useampia CN-luokituksen tasoja samassa haussa, vaihtoehtoiset koodit saa vastaavasti komennolla:
data("tulli/uljas_cn", dl_filter = list(
`Tavaraluokitus CN` = NA
)) $`Tavaraluokitus CN` |> View()
Varsinaista data-hakua varten filteriin voi sitten syöttää vektorina luokitusten koodit. dl_filteriin on hyvä syöttää samalla myös muita rajoitteita, sillä tietomäärä ja latausaika paisuu helposti, jos hakee kaikki kombinaatiot.
data("tulli/uljas_cn", dl_filter = list(
`Tavaraluokitus CN` = c("0101", "010231"),
Maa = "AA",
Suunta = 1:2,
Indikaattorit = "V1"
))
Vaihtoehtoisesti voin toki kirjoittaa näitä hakuja tidy_scripteiksi, jolloin käyttö on paljon helpompaa, mutta toisaaltaa hakujen muuttaminen on vaikeampaa.
Joo, kuulostaa hyvältä, ehkä se on helpompaa, että voi hakea dl_filterin avulla kuin, että ovat tidy:na.
Niistä ulkomaankauppa tidy:sta puuttui muuten frekvenssi-atribuutti, joten datan koonti ei niille toimi.
Joo, lisään frekvenssin mukaan. Se vaatii vähän kikkailua, kun tullin api kerro sitä suoraan. Yritän lisätä tämän ominaisuuden huomiseksi.
Nyt tullidatan mukana tulee frekvenssi-metatieto.
Muutin myös yaml_to_excel
-funktion ehdolliseksi niin, että yamlin tiedot kenttä menee tullidatan kohdalla dl_filteriin. Eli yammeliin voi kirjoittaa suodattimet tuttuun tyyliin.
Hyvä kiitos. Pitäisikö se kuitenkin olla niin, että täytyy määrittää dl_filter? ECB:n tiedothan menee myös sen kautta, vai onko ne vaan poikkeustapauksia, joten ne voi vaan olettaa lähteen perusteella?
ptt_update_ennustedata("MAdata_Tulli", start_year = 2012)
ei toimi
Error in UseMethod("filter") :
no applicable method for 'filter' applied to an object of class "c('robonomist_data', 'list')"
Ehdotan, että tehdään koodiin poikkeustapaus myös ECB:lle, jos on tarpeen. Näin loppukäyttäjän ei tarvitse muistaa, mikä toimii mitenkin. Backendia voi sitten tarvittaesssa johdonmukaistaa myöhemmin.
Tullin API:ssa näyttäisi olevan bugi, jonka johdosta kaikki erikoismerkit eivät kelpaa syötteeksi. Jonkin verran olen näitä jo aiemmin paikkaillut meidän koodissa, mutta lisäsin pari uutta workaroundia. Testailen vielä hieman ja vien sitten paikkauksen teidän palvelimelle.
Kokeiles nyt. Päivitin serveriä ja pttrobo-pakettia.
Näyttäisi toimivat, kiitos
Mitenkä Tullin haut olisi järkevä koodata yaml:iin, kun pelkkä id ei riitä. @itkonen