Ohjelmointi

Kuinka käyttää .SD-tiedostoa R data.table-paketissa

Joillekin data.table-käyttäjille "dot-SD" on hieman mysteeri. Mutta data.table-luoja Matt Dowle kertoi minulle, että se on todella yksinkertaista: Ajattele sitä vain symboleina, joka edustaa kutakin ryhmää. Käydään läpi muutama esimerkki.

Minulla on tietojoukko päivittäisistä pyöräretkistä Bostonin alueen polkupyöränjakopalvelusta. Jos haluat seurata mukana, voit ladata CSV-tiedoston tämän artikkelin alaosassa olevasta linkistä.

Ladaan data.table-taulukon ja tuon CSV-tiedostoni data.table-tiedostojen avulla leipä () toiminto. Alla olevassa koodissa tallennan tiedot mydt-nimiseen tietotaulukkoon.

kirjasto (data.table)

mydt <- fread ("daily_cycling_trips_by_usertype.csv")

Seuraavaksi ehdotan, että tulostetaan kuusi ensimmäistä riviä pää (mydt) nähdäksesi miltä tiedot näyttävät. Näet, että tiedoissa on sarakkeet päivämäärälle, käyttäjätyypille (tilaaja tai yksittäisen matkan asiakas), matkojen lukumäärälle, vuodelle ja kuukaudelle alkamispäivästä.

Ensimmäinen esimerkki, jonka Matt ehdotti: Tulosta muutama ensimmäinen taulukko ryhmitelty käyttäjätyypin mukaan. (Suodatamme 12 ensimmäistä riviä vain helpottaaksemme tuotoksen näkymistä.)

mydt [1:12, tulosta (.SD), kirjoittanut = usertype]

Tulosta() iteroitiin jokaisen ryhmän yli ja tulostettiin kaksi erillistä kertaa, yksi kullekin käyttäjätyypille. Ongelmana on kuitenkin se, että en tiedä mikä on asiakkaan käyttäjäryhmä ja mikä on tilaajan käyttäjäryhmä. "By" -saraketta ei tulostettu. Onneksi Matt näytti minulle pienen temppun siihen.

Jos olet perehtynyt mydt [i, j, kirjoittanut] data.table-syntaksissa, sulkujen merkinnöissä on kolme osaa tietotaulukon nimen jälkeen: i, jja mennessä. i on rivien suodattamiseen, j on mitä haluat tehdä, ja mennessä miten haluat ryhmitellä tietosi.

Esimerkiksi:

mydt [1:12, {tulosta (.SD)}, kirjoittanut = usertype]

Yllä olevaan koodiriviin olen juuri asettanut kiharat olkaimet j osa. Se antaa minun antaa lisää useita R-lausekkeita j Perustelu. Nyt se on edelleen sama kuin aiemmin: ei käyttäjätyyppien nimiä.

Mutta tässä seuraavassa koodirivissä, katso R-lauseketta, jonka lisäsin (no, Matt käski minun lisätä): tulosta (.BY).

mydt [1:12, {tulosta (.BY); tulosta (.SD)}, kirjoittanut = usertype]

.BY on erityinen data.table-symboli, joka pitää arvon mennessä - minkä sarakkeen tai sarakkeet ryhmittelen.

Jos suoritat tämän koodin, sinulla on jokaisen ryhmämuuttujan nimi tuloksen kanssa.

Sharon Machlis,

Joten se on hyvin yksinkertainen esimerkki. Oletan, että haluat ehkä tehdä jotain mielenkiintoisempaa .SD kuin tulostaa. Seuraavaksi tarkastellaan tietojen yhteenvetoa ryhmittäin ja lasketaan, mikä päivä oli eniten matkoja joka kuukausi tänä vuonna.

Tässä koodirivissä on kaikki:

mydt [Vuosi == "2019", .SD [mikä.max (Matkat)], mennessä = Kuukausikohta]

i ensimmäinen suluissa olevien suodattimien argumentti kaikille riveille, joissa vuosi on 2019. j argumentti on mielenkiintoinen osa .SD. Ajatella .SD viitaten kuhunkin tietoryhmään. Tai kuten Matt sanoi: "Teet j mennessä mennessä. Kuten varten silmukka. "

Entä jos haluat nähdä kuukausittaiset maksimit ja käyttäjätyypit? Lisää vain toinen sarake mennessä (kolmas) väite:

mydt [Vuosi == "2019", .SD [mikä.max (Matkat)],

kirjoittanut =. (MonthStarting, usertype)]

On olemassa useita tapoja ilmaista ryhmittely useamman kuin yhden sarakkeen mukaan data.table-taulukossa. Yksi tapa on piste, joka on lainaamattomien sarakkeiden nimien edessä, kuten yllä. Toinen on käyttää lista esimerkiksi pisteen sijasta:

mydt [Vuosi == "2019", .SD [mikä.max (Matkat)],

by = lista (MonthStarting, usertype)]

Voit myös käyttää tavanomaista R-perusvektoria, jossa jokaisen sarakkeen nimen ympärillä on lainausmerkkejä.

mydt [Vuosi == "2019", .SD [mikä.max (Matkat)],

by = c ("MonthStarting", "usertype")]

Jos haluat lisää R-vinkkejä, siirry "Do More With R" -videosivulle tai tutustu "Do More With R" -soittolistaan.

lataa CSV-esimerkkitiedosto CSV-tiedostoon "Kuinka käyttää .SD: tä R data.table -paketissa" -artikkeli ja video Sharon Machlis

Toivottavasti nähdään seuraava jakso!

$config[zx-auto] not found$config[zx-overlay] not found