Rješavanje Svih Problema S Windows I Drugih Programa

4 zadatka prikupljanja podataka u R za napredne početnike

Uz veliku moć dolazi ne samo velika odgovornost, već često i velika složenost-a to sigurno može biti slučaj s R. Projektom otvorenog koda R za statističko računarstvo, programiranjejezika i okoline, nudi ogromne mogućnosti istraživanja, manipulacije i analize podataka. No, zbog ponekad komplicirane sintakse, početnicima će možda biti izazov poboljšati svoje vještine nakon što nauče neke osnove.

Dobivanje vaših podataka oko R

  • Dodavanje stupca u postojeći okvir podataka
    • Sintaksa 1: Jednadžbom
    • Sintaksa 2: R -ova funkcija transform ()
    • Sintaksa 3: R -ova funkcija primjene
    • Sintaksa 4: mapply ()
    • Sintaksa 5: tidyverse's dplyr
  • Dobivanje sažetaka po podgrupama podataka
  • Poseban slučaj bonusa: grupiranje prema datumskom rasponu
  • Razvrstavanje rezultata
  • Preoblikovanje: široko do dugo
  • Preoblikovanje: Dugo do široko

Ako čak niste ni u fazi u kojoj se osjećate ugodno obavljajući rudimentarne zadatke u R -u, preporučujemo vam da se odmah uputite na Computerworld's Vodič za početnike u R . No ako imate neke osnove i želite napraviti još jedan korak u razvoju vještina R - ili samo želite vidjeti kako napraviti jedan od ova četiri zadatka u jeziku R - čitajte dalje.



Napravio sam uzorak skupova podataka s trogodišnjim podacima o prihodima i dobiti od Applea, Googlea i Microsofta, gledajući kako su se tvrtke pokazale ubrzo nakon 'Velike recesije' 2008.-2009. (Izvor podataka bile su same tvrtke; 'fy' znači fiskalna godina.) Ako želite pratiti, možete upisati (ili kopirati i zalijepiti) ovo u prozor terminala R:



fy <- c(2010,2011,2012,2010,2011,2012,2010,2011,2012) company <- c('Apple','Apple','Apple','Google','Google','Google','Microsoft','Microsoft','Microsoft') revenue <- c(65225,108249,156508,29321,37905,50175,62484,69943,73723) profit <- c(14013,25922,41733,8505,9737,10737,18760,23150,16978) companiesData <- data.frame(fy, company, revenue, profit)

Gornji kôd stvorit će okvir podataka poput onog ispod, pohranjenog u varijabli pod nazivom 'companiesData':

fy društvo prihod dobit
1 2010. godine Jabuka 65225 14013
2 2011. godine Jabuka 108249 25922
3 2012 Jabuka 156508 41733
4 2010. godine Google 29321 8505
5 2011. godine Google 37905 9737
6 2012 Google 50175 10737
7 2010. godine Microsoft 62484 18760
8 2011. godine Microsoft 69943 23150
9 2012 Microsoft 73723 16978

(R dodaje vlastite brojeve redaka ako ne uključite nazive redaka.)



Ako pokrenete funkciju str () na okviru podataka kako biste vidjeli njegovu strukturu, vidjet ćete da se godina tretira kao broj, a ne kao godina ili faktor:

str(companiesData) 'data.frame': 9 obs. of 4 variables: $ fy : num 2010 2011 2012 2010 2011 ... $ company: Factor w/ 3 levels 'Apple','Google',..: 1 1 1 2 2 2 3 3 3 $ revenue: num 65225 108249 156508 29321 37905 ... $ profit : num 14013 25922 41733 8505 9737 ...

Možda bih htio grupirati svoje podatke po godinama, ali nemojte misliti da ću raditi posebnu vremensku analizu, pa ću umjesto toga fy stupac brojeva pretvoriti u stupac koji sadrži R kategorije (koji se nazivaju čimbenici) datuma sa sljedećom naredbom:

companiesData$fy <- factor(companiesData$fy, ordered = TRUE)



prelazak s Windows 7 na Windows 10

Tijekom ovog vodiča pokazat ću i kako se ti zadaci ostvaruju pomoću paketa u takozvanom 'tidyverseu'-ekosustavu koji je u početku zagovarao glavni znanstvenik RStudio Hadley Wickham, a sada ga podržavaju brojni autori otvorenog koda unutar i izvan RStudio.

Za stvaranje uređenih faktora, paket tidyverse forcats ima nekoliko mogućnosti, uključujući | _+_ |.

Sada smo spremni za posao.

IDG -ova Sharon Machlis pokazuje kako se koriste nove funkcije tidyr -ove funkcije pivot_longer i pivot_wider. Više detalja na stranici 7.

Dodavanje stupca u postojeći okvir podataka

Jedan od najjednostavnijih zadataka u R -u je dodavanje novog stupca u okvir podataka na temelju jednog ili više drugih stupaca. Možda biste htjeli zbrojiti nekoliko svojih postojećih stupaca, pronaći prosjek ili na neki drugi način izračunati neki 'rezultat' iz postojećih podataka u svakom retku.

Postoji mnogo načina za to u R. Neki će se činiti pretjerano kompliciranima za ovaj lak zadatak, ali zasad ćete mi vjerovati na riječ da neke složenije opcije ponekad mogu dobro doći naprednim korisnicima s više robusne potrebe. Međutim, ako sada tražite jednostavan, elegantan način za to, prijeđite na Sintaksu 5 i paket dplyr.

sdx pomoćnik

Sintaksa 1: Jednadžbom

Jednostavno stvorite naziv varijable za novi stupac i unesite formulu izračuna kao njezinu vrijednost ako, na primjer, želite novi stupac koji je zbroj dva postojeća stupca:

dataFrame $ newColumn<- dataFrame$oldColumn1 + dataFrame$oldColumn2

Kao što vjerojatno možete pretpostaviti, ovo stvara novi stupac pod nazivom 'newColumn' sa zbrojem oldColumn1 + oldColumn2 u svakom retku.

kako postaviti google chrome na mac

Za naš uzorak okvira podataka pod nazivom podaci, mogli bismo dodati stupac za maržu dobiti dijeljenjem dobiti s prihodom, a zatim množenjem sa 100:

companiesData$fy <- forcats::as_factor(as.character(companiesData$fy))

To nam daje:

fy društvo prihod dobit margina
1 2010. godine Jabuka 65225 14013 21.48409
2 2011. godine Jabuka 108248 25922 23.94664
3 2012 Jabuka 156508 41733 26.66509
4 2010. godine Google 29321 8505 29,00651
5 2011. godine Google 37905 9737 25.68790
6 2012 Google 50175 10737 21.39910
7 2010. godine Microsoft 62484 18760 30.02369
8 2011. godine Microsoft 69943 23150 33.09838
9 2012 Microsoft 73723 16978 23,02945

Vau - to je puno decimalnih mjesta u novom stupcu margine.

To možemo zaokružiti na samo jedno decimalno mjesto pomoću funkcije round (); round () ima oblik:

okrugli (broj (i) koji se zaokružuju, koliko decimalnih mjesta želite)

Dakle, da biste zaokružili stupac margine na jedno decimalno mjesto:

companiesData$margin <- (companiesData$profit / companiesData$revenue) * 100

I dobit ćete ovaj rezultat:

fy društvo prihod dobit margina
1 2010. godine Jabuka 65225 14013 21.5
2 2011. godine Jabuka 108248 25922 23.9
3 2012 Jabuka 156508 41733 26.7
4 2010. godine Google 29321 8505 29,0
5 2011. godine Google 37905 9737 25.7
6 2012 Google 50175 10737 21.4
7 2010. godine Microsoft 62484 18760 30,0
8 2011. godine Microsoft 69943 23150 33.1
9 2012 Microsoft 73723 16978 23.0