pttry / pttrobo

Automation of PTT data
https://pttry.github.io/pttrobo/
Other
1 stars 0 forks source link

data_to_yaml Session aborted ääkösten takia? #5

Closed jhuovari closed 2 years ago

jhuovari commented 2 years ago

data_to_yaml aiheuttaa session abortin, jos muunnos on "alkuperäinen". Ei ilmeisesti hyväksy ääkkösiä. Virhe tulee yaml::write_yaml:sta.

Me ollaan äkkösongelmien takia yleensä tehty kaikki englanniksi.

jhuovari commented 2 years ago

Olisko alkuperäinen vain NULL, jolloin ei tulisi mitään muunnosta? Muunnoksiin ilmeni myös tarve NA-havaintojen käsittelyyn. Esim. viljan hinnoissa on NA kuukausihavaintoja. Yleisesti NA:ta ei kuitenkaan kannata jättää huomiotta. @itkonen

itkonen commented 2 years ago

Pystytkö kuvaamaan tarkemmin, missä kohtaa se kaatui? Mietin, kun automaatiota varten homma pitäisi saada toimimaan utf-8:lla ja ääkkösillä, kun automaatio pilvessä toimii utf-8:lla ja datassakin on ääkkösiä.

Yaml kääntyy R:ään listaksi, joten puuttuvat arvot ovat implisiittisesti NULL arvoja. NULL arvon voi myös kirjoittaa eksplisiittisesti yammeliin. Funktio on kirjoitettu niin, että NULL korvataan "alkuperäinen"-stringillä (%||%-operaattori).

Pitää vielä miettiä, miten nuo puuttuvat vuodet/arvot saisi väännettyä taulukkoon nätisti.

itkonen commented 2 years ago

Tein fiksin, joka vääntää kaikki vuodet taulukkoon, vaikka niistä puuttuisi havaintoja: c0d697a

jhuovari commented 2 years ago

Fiksi korjasin #4 .

jhuovari commented 2 years ago

Kaatuminen tapahtuu tällä: yaml::write_yaml(list(koe = "alkuperäinen"), file = "koe.yaml")

jhuovari commented 2 years ago

tai jo tässä: yaml::as.yaml(list(koe = "alkuperäinen"))

jhuovari commented 2 years ago

Näyttäisi olevan bugi yaml:ssa Tämä toimii: lst <- purrr::map(list(koe = "alkuperäinen"), enc2utf8) yaml::as.yaml(lst)

itkonen commented 2 years ago

Näköjään yaml-paketissa on tuollainen puute. Onneksi sille voi syöttää omat handlerit, jotka kääntävät merkit tarvittaessa. Lisäsin tällaiset handlerit stringeille ja listojen nimille. Tämän pitäisi fiksata: 9a519d4f9a9a

jhuovari commented 2 years ago

Nyt toimii. Vähän erikoista, että aiheutti kaatumisen, ei pelkkää virhettä.

itkonen commented 2 years ago

Ollaan painittu vähän vastaavien ongelmien kanssa aiemmin. Siinä käy helposti niin, että eri encoding vaatii merkkijonolle eri määrän muistia, ja sitten C-koodi luuppaa yli ohjelmalle varatun muistialueen, jolloin koko ohjelma kaatuu.

Hyvää joulua!