Ohjelmointi

Viisi kätevää vaihtoehtoa R data.table -taulukossa

Kuten kaikki data.table R -paketin toiminnot, myös fread on nopea. Erittäin nopeasti. Mutta siinä on muutakin kuin pelkkää nopeutta. Siinä on useita hyödyllisiä ominaisuuksia ja vaihtoehtoja, kun tuot ulkoista tietoa R: ään. Tässä on viisi hyödyllisintä.

Huomaa: Jos haluat seurata mukana, lataa New York Times CSV-tiedosto päivittäisistä Covid-19-tapauksista Yhdysvaltain läänin mukaan osoitteessa //github.com/nytimes/covid-19-data/raw/master/us-counties. csv.

Käytä fread's nrows -vaihtoehtoa

Onko tiedosto suuri? Haluatko tutkia sen rakennetta ennen koko tuotteen tuomista - ilman joudutko avaamaan sen tekstieditorissa tai Excelissä? Käytä leipää nrows vaihtoehto tuo vain osa tiedostoa tutkittavaksi.

Alla oleva koodi tuo vain CSV: n ensimmäiset 10 riviä.

mydt10 <- fread ("us-county.csv", nrows = 10)

Jos haluat vain nähdä sarakkeiden nimet ilman tietoja, voit käyttää niitä numero = 0

Käytä freadin valintavaihtoehtoa

Kun tiedät tiedostorakenteen, voit valitse tuotavat sarakkeet. leipä valitse -vaihtoehdon avulla voit valita sarakkeet, jotka haluat säilyttää. valitse ottaa vektorin jostakin sarakkeesta nimet tai sarakkeen sijainti numerot. Jos nimiä, niiden on oltava lainausmerkeissä, kuten useimmat merkkijonovektorit:

mydt <- fread ("us-county.csv",

select = c ("päivämäärä", "lääni", "osavaltio", "tapaukset"))

Kuten aina, numerot eivät tarvitse lainausmerkkejä:

mydt <- fread ("us-county.csv", valitse = c (1,2,3,5))

Voit käyttää R-objektia sarakkeiden nimivektorin kanssa leivän sisällä, kuten näet seuraavasta koodiryhmästä. Luon vektorin my_cols päivämäärä, lääni, osavaltio ja tapaukset; sitten käytän sitä vektoria leivän sisällä.

my_cols <- c ("päivämäärä", "lääni", "osavaltio", "tapaukset")

mydt <- fread ("us-county.csv", valitse = my_cols)

Vastakohta valitse On pudota. Voit tuoda kaikki sarakkeet paitsi ne, joilla määrität pudota, kuten:

mydt <- fread ("us-county.csv", drop = c ("fips", "kuolemat"))

Kuten kanssa valitse, pudota ottaa vektorin sarakkeiden nimistä tai numeerisista sijainneista.

Käytä leipää grepin kanssa

Jos olet perehtynyt Unixiin, voit Suorita komentorivityökalut suoraan leivän sisältä. Esimerkiksi, jos halusin vain Kalifornian tietoja, voisin käyttää grepiä vain tuodaksesi rivejä, jotka sisältävät tekstin "Kalifornia". Huomaa, että tämä hakee jokainen koko rivi tekstimerkkijonona, ei tiettyä saraketta, joten tietojesi on oltava sellaisessa muodossa, että se on järkevää.

ca <- fread ("grep Kalifornian us-county.csv")

Valitettavasti grep ei ymmärrä alkuperäisen tiedoston sarakkeiden nimiä, joten päädyt oletusnimiin.

pää (ca) V1 V2 V3 V4 V5 V6 1: 2020-01-25 Orange California 6059 1 0 2: 2020-01-26 Los Angeles California 6037 1 0 3: 2020-01-26 Orange California 6059 1 0 4: 2020 -01-27 Los Angeles California 6037 1 0 5: 2020-01-27 Orange California 6059 1 0 6: 2020-01-28 Los Angeles California 6037 1 0

Freadin avulla voimme kuitenkin määrittää sarakkeiden nimet sarakkeiden nimet vaihtoehto. Voin asettaa nimet perustamalla yllä luomani mydt10-nimiä.

ca pää (ca) päivämäärä läänin osavaltio korjaa tapaukset kuolemat 1: 2020-01-25 Orange California 6059 1 0 2: 2020-01-26 Los Angeles California 6037 1 0 3: 2020-01-26 Orange California 6059 1 0 4: 2020-01-27 Los Angeles California 6037 1 0 5: 2020-01-27 Orange California 6059 1 0 6: 2020-01-28 Los Angeles California 6037 1 0

Voimme käyttää myös säännöllisiä lausekkeita grep'sin kanssa -E vaihtoehto, antamalla meille tehdä monimutkaisempia hakuja, kuten etsiä neljää tilaa kerralla.

osavaltiot4 <- fread (cmd = "grep -E 'Texas | Arizona | Florida | South Carolina' us-county.csv",

col.names = nimet (mydt10))

Jälleen kerran muistutus: Tämä etsii kaikkia näitä osavaltion nimiä missä tahansa rivillä, ei vain tilasarakkeessa. Jos suoritat yllä olevan koodin ja tarkistat, mitkä tilat sisältyvät tuloksiin ainutlaatuinen (osavaltiot4 $ osavaltio), näet Oklahoma ja Missouri osavaltiosarakkeessa yhdessä Texasin, Arizonan, Floridan ja Etelä-Carolinan kanssa. Tämä johtuu siitä, että sekä Oklahoma että Missouri ovat läänit nimeltä Texas.

Joten, grep tiedostojen tuonnin aikana on tapa suodattaa pois paljon tietoja, joita et halua, erittäin suuresta tietojoukosta. mutta se ei takaa, että saat vain mitä haluat. Tämäntyyppisen tuonnin jälkeen sinun on silti suodatettava erityisesti saraketietoihin varmistaaksesi, että et saanut mitään odottamattomia.

Käytä freadin colClasses-vaihtoehtoa

Sinä pystyt aseta sarakeluokat tuonnin aikana - vain muutama sarake, ei jokainen. Esimerkiksi näiden tietojen päivämäärä-sarake tulee merkkijonoina, vaikka se on muodossa vuosi-kuukausi-päivä. Voimme asettaa sarakkeen nimeltä Päivämäärä tietotyyppiin Päivämäärä tuonnin aikana colClasses vaihtoehto.

mydt <- fread ("us-county.csv", colClasses = c ("date" = "Date"))

Nyt päivämäärät ovat päivämääriä.

> str (mydt) Luokat 'data.table' ja 'data.frame': 322651 obs. / 6 muuttujaa: $ date: Date, format: "2020-01-21" "2020-01-22" "2020-01-23" ... $ county: chr "Snohomish" "Snohomish" "Snohomish" "Cook "... $ state: chr" Washington "" Washington "" Washington "" Illinois "... $ fips: int 53061 53061 53061 17031 53061 6059 17031 53061 4013 6037 ... $ tapaukset: int 1 1 1 1 1 1 1 1 1 1 ... $ kuolemantapaukset: int 0 0 0 0 0 0 0 0 0 0 0 ...

Käytä pakattua tiedostoa pakatulla tiedostolla

Sinä pystyt tuo pakattu tiedosto avaamatta sitä ensin. fread voi tuoda gz- ja bz2-tiedostoja suoraan, kutenmydt <- fread ("myfile.gz"). Jos haluat tuoda zip-tiedoston, voit purkaa sen pura järjestelmän komento syötteessä syntaksin avullamydt <- fread (cmd = 'pura -cq myfile.zip').

Jos haluat lisää R-vinkkejä, siirry Do Do With With R -sivulle.

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