Programavimas

Kaip naudoti .SD pakete R data.table

Kai kuriems „data.table“ vartotojams „dot-SD“ yra šiek tiek paslaptis. Bet „data.table“ kūrėjas Mattas Dowle'as man pasakė, kad tai iš tikrųjų gana paprasta: tiesiog pagalvok apie tai kaip apie simbolį, reiškiantį „kiekvieną grupę“. Peržvelkime keletą pavyzdžių.

Turiu duomenų apie kasdienių kelionių dviračiais rinkinį iš Bostono srities dviračių dalijimosi sistemos. Jei norite sekti toliau, galite atsisiųsti CSV failą iš šio straipsnio apačioje pateiktos nuorodos.

Įkelsiu „data.table“ ir importuosiu savo CSV failą naudodamas „data.table“ duona () funkcija. Žemiau esančiame kode duomenis išsaugoju duomenų lentelėje, vadinamoje mydt.

biblioteka (data.table)

mydt <- fread ("daily_cycling_trips_by_usertype.csv")

Toliau siūlau atspausdinti pirmąsias šešias eilutes galva (mydt) norėdami pamatyti, kaip atrodo duomenys. Pamatysite, kad duomenyse yra datos, vartotojo tipo (abonento ar vienos kelionės kliento), kelionių skaičiaus, metų ir mėnesio pradžios datos stulpeliai, kad būtų lengviau pateikti bendrą sumą pagal mėnesį.

Pirmasis Matto pasiūlytas pavyzdys: atsispausdinkite kelias pirmąsias duomenų lentelės eilutes sugrupuota pagal vartotojo tipą. (Filtruojame pirmąsias 12 eilučių, kad tik būtų lengviau matyti išvestį).

mydt [1:12, spausdinti (.SD), pagal = usertype]

spausdinti () iteruota per kiekvieną grupę ir atspausdinta du skirtingus kartus, po vieną kiekvienam vartotojo tipui. Vis dėlto problema yra ta, kad aš nežinau, kuri yra klientų vartotojų grupė, o kuri yra abonentų vartotojų grupė. Stulpelis „iki“ nebuvo atspausdintas. Laimei, Mattas man parodė tam nedidelę gudrybę.

Jei esate susipažinę mydt [i, j, autorius] data.table sintaksė, po duomenų lentelės pavadinimo yra trys skliaustelio žymėjimo dalys: i, jir pateikė. i skirtas eilutėms filtruoti, j yra tam, ką norite padaryti, ir pateikė yra tai, kaip norite sugrupuoti savo duomenis.

Pavyzdžiui:

mydt [1:12, {print (.SD)}, by = usertype]

Aukščiau esančioje kodo eilutėje aš tiesiog įdėjau garbanotas petnešas aplink j dalis. Tai leis man pridėti kelias R išraiškas j argumentas. Dabar tai vis dar tas pats, kas anksčiau: jokių vartotojo tipų vardų nėra.

Bet šioje kitoje kodo eilutėje pažiūrėkite į mano pridėtą R teiginį (gerai, Mattas liepė man pridėti): spausdinti (.BY).

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

.BY yra specialus data.table simbolis, kuris turi vertę pateikė - pagal kokius stulpelius ar stulpelius grupuoju.

Jei paleidžiate šį kodą, kartu su spaudiniu turėsite kiekvieno grupavimo kintamojo pavadinimą.

Sharon Machlis,

Taigi tai yra labai paprastas pavyzdys. Spėju, kad galbūt norėsite padaryti ką nors šiek tiek įdomesnio .SD nei spausdinti. Toliau pažvelkime į duomenų apibendrinimą pagal grupes, apskaičiuodami, kuri diena buvo daugiausia kelionių kiekvieną mėnesį šiais metais.

Šioje kodo eilutėje yra viskas:

mydt [Metai == "2019", .SD [kuri.max (Kelionės)], pagal = Mėnesio pradžia]

i pirmasis skliaustuose esančių eilučių, kuriose metai yra 2019, filtrų argumentas j argumentas yra įdomi dalis .SD. Galvoti apie .SD kaip nuoroda į kiekvieną jūsų duomenų grupę. Arba kaip Mattas sakė: „Jūs darote j pateikė pateikė. Kaip dėl kilpa “.

Ką daryti, jei norite pamatyti kiekvieno mėnesio ir vartotojo tipo maksimumus? Tiesiog pridėkite dar vieną stulpelį prie pateikė (trečias) argumentas:

mydt [Metai == "2019", .SD [kuri.max (Kelionės)],

pateikė =. („MonthStarting“, usertype)]

Yra keli būdai išreikšti grupavimą pagal daugiau nei vieną stulpelį „data.table“. Vienas iš būdų yra taškas prieš necituojamus stulpelių pavadinimus, kaip nurodyta aukščiau. Kitas yra naudoti sąrašą vietoj taško, pavyzdžiui:

mydt [Metai == "2019", .SD [kuri.max (Kelionės)],

pagal = sąrašas (MonthStarting, usertype)]

Taip pat galite naudoti įprastą bazinį R vektorių su kabutėmis aplink kiekvieno stulpelio pavadinimą.

mydt [Metai == "2019", .SD [kuri.max (Kelionės)],

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

Norėdami gauti daugiau R patarimų, eikite į „Do More With R“ vaizdo įrašo puslapį arba peržiūrėkite „YouTube“ grojaraštį „Do More With R“.

atsisiųskite pavyzdinį dviračių kelionės duomenų CSV failo pavyzdį, kuris pridedamas prie mano straipsnio „Kaip naudoti .SD R data.table pakete“ straipsnį ir vaizdo įrašą Sharon Machlis

Tikiuosi, kad pamatysime kitą seriją!

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