Innholdsfortegnelse:
- Legge til rad og kolonne totals
- trim
- Noe annet som du sikkert gjorde mye i Excel, er å beregne betingede summer og teller med funksjonene sumif () og countif ().
- Si at du vil beregne et betinget gjennomsnitt av drivstoffeffektiviteten i mtcars. Du gjør dette med mean () funksjonen. For å få drivstoffeffektiviteten for biler på hver side av en terskel på 150 hestekrefter, prøv følgende: >> med (mtcars, mean (mpg)) [1] 20. 09062> med (mtcars, mean (mpg [ hp med (mtcars, mean (mpg [hp> = 150])) [1] 15. 40667
- Du kan også bruke t () til å transponere datarammer, men vær forsiktig når du Gjør dette. Resultatet av en transposisjon er alltid en matrise (eller array). Fordi arrays alltid har bare en type av variabel, for eksempel numerisk eller tegn, kan variabeltypene av resultatene ikke være det du forventer.
- For eksempel, for å finne plasseringen av elementet "Toyota Corolla" i radnavnet på MTV, prøv følgende: >> Indeksindeks [1] 20> Mtcars [Index, 1: 4] mpg cyl disp hp Toyota Corolla 33. 9 4 71. 1 65
- Tenk deg at du er salgsdirektør for et selskap, og du må sette den beste prisen for produktet. Med andre ord, finn prisen på et produkt som maksimerer inntekter.
Video: Top 10 Excel New Features 2024
Regnearket er trolig en av de mest brukte PC-applikasjonene - og med god grunn: Regneark gjør det veldig enkelt å utføre beregninger og andre operasjoner på tabell data. Men regneark gir også noen risiko: De er lett å korrupte og svært vanskelig å feilsøke. Den gode nyheten er at du kan bruke R til å gjøre mange av de samme tingene du pleide å gjøre i regneark.
Legge til rad og kolonne totals
En oppgave som du ofte gjør i et regneark, er å beregne rad eller kolonne totalsum. Den enkleste måten å gjøre dette på er å bruke funksjonene rowSums () og colSums (). På samme måte bruker du rowMeans () og colMeans () for å beregne midler.
Prøv det på den innebygde datasettet iris. Fjern først den femte kolonnen fordi den inneholder tekst som beskriver arten av iris: >> iris. num <- iris [-5]
Beregn deretter summen og gjennomsnittet for hver kolonne:
Formateringsnumre
Du kan bruke formatet () for å slå tallene i pen tekst, klar til utskrift. Denne funksjonen tar en rekke argumenter for å kontrollere formatet på resultatet. Her er noen:
trim
:En logisk verdi. Hvis det er feil, legger det mellomrom til høyre - rettferdiggjør resultatet. Hvis det er SANT, undertrykker det de ledende områdene.
-
siffer : Hvor mange signifikante tall for numeriske verdier som skal vises.
-
nsmall : Minste antall sifre etter desimaltegnet.
-
I tillegg styrer du formatet av desimaltegnet med desimal. Merk, merket mellom intervaller før desimalpunktet med stor. Merk, og merket mellom intervaller
etter desimalpunktet med liten. merke. Du kan for eksempel skrive ut nummeret 12345. 6789 med et komma som desimaltegn, mellomrom som det store merket og prikkene som det lille merket: >> format (12345, 6789, siffer = 9, desimal. mark = ",", + stor. mark = "", lite.mark = ".", lite.intervall = 3) [1] "12 345, 678. 9" Som et mer praktisk eksempel, hjelp av noen kolonner i mtcars, og skriv deretter ut resultatene med to sifre etter desimaltegnet, bruk følgende: >> x format (x, siffer = 2, nsmall = 2) mpg cyl disp hp "20.09 "" 6. 19 "" 230. 72 "" 146. 69 " Merk at resultatet ikke lenger er et nummer, men en tekststreng. Så vær forsiktig når du bruker nummerformatering - dette bør være det siste trinnet i rapporterings arbeidsflyten din.
Hvis du er kjent med programmering på språk som ligner på C eller C ++, kan du også finne sprintf () -funksjonen nyttig. Denne innpakningen lar deg lime inn formatert nummer direkte inn i en streng.
Her er et eksempel på å konvertere tall i prosentandel: >> x sprintf ("%. 1f %%", 100 * x) [1] "50. 0% "" 51. 0% "" 52. 0% "" 53. 0% "" 54. 0% "" 55. 0% "
Dette er hva det gjør: Det første argumentet til sprintf () indikerer formatet - i dette tilfellet"%. 1f %% ". Formatargumentet bruker spesielle bokstaver som indikerer at funksjonen skal erstatte denne bokstavelig med en variabel og bruke noen formatering. Bokstavene starter alltid med% symbolet. Så, i dette tilfellet%. 1f betyr å formatere den første tilførte verdien som en fastpunktsverdi med ett siffer etter desimaltegnet, og %% er en bokstav som betyr utskrift a%.
For å formatere noen tall som valuta - i dette tilfellet, US dollar - bruk: >> sett. frø (1)> x sprintf ("$% 3. 2f", x) [1] "$ 265. 51" "$ 372. 12" "$ 572. 85" "$ 908. 21" "$ 201. 68 "
Funksjonen sprintf () gir deg en alternativ måte å lime inn verdien av en variabel i en streng: >> tingpris sprintf ("% s kostnad $% 3. 2f ", ting, pris) [1] "Brød koster $ 2. 10" "informasjonskapsler koster $ 4. 00"
Hva skjer her, fordi du har levert to vektorer (hver med to elementer) til sprintf (), er resultatet ditt en vektor med to elementer. R sykler gjennom elementene og plasserer dem i sprintf () bokstavene.
Du kan gjøre alt med lim () og format () som du kan gjøre med sprintf (), slik at du ikke virkelig trenger å bruke den. Men når du gjør det, kan det forenkle koden din.
Sortering av data
For å sortere data i R, bruker du funksjonene sort () eller rekkefølge ().
For å sortere datarammermtcars i stigende eller synkende rekkefølge av kolonnehp, bruk: >> med (mtcars, mtcars [order (hp),))> med (mtcars, mtcars [rekkefølge = TRUE),])
Gjør valg med om
Regneark gir deg muligheten til å utføre alle slags "Hva om? "Analyserer. En måte å gjøre dette på er å bruke if () -funksjonen i et regneark.
R har også if () -funksjonen, men det brukes mest for strømstyring i skriptene dine. Fordi du vanligvis vil utføre en beregning på en hel vektor i R, er det vanligvis mer hensiktsmessig å bruke ifelse () -funksjonen.
Her er et eksempel på bruk av ifelse () for å identifisere biler med høy drivstoffeffektivitet i datasettet mtcars: >> mtcars <- transform (mtcars, + mpgClass = ifelse (mpg mtcars [mtcars $ mpgClass == "High",]
Beregning av betingede totaler
Noe annet som du sikkert gjorde mye i Excel, er å beregne betingede summer og teller med funksjonene sumif () og countif ().
Du kan gjøre det samme i en av to måter i R:
Bruk ifelse.
Beregn bare måleverdien av interesse på en delmengde av dataene dine.
Si at du vil beregne et betinget gjennomsnitt av drivstoffeffektiviteten i mtcars. Du gjør dette med mean () funksjonen. For å få drivstoffeffektiviteten for biler på hver side av en terskel på 150 hestekrefter, prøv følgende: >> med (mtcars, mean (mpg)) [1] 20. 09062> med (mtcars, mean (mpg [hp med (mtcars, mean (mpg [hp> = 150])) [1] 15. 40667
Telling av antall elementer i en vektor er det samme som å spørre om lengden. Dette betyr at Excel-funksjonen countif) har en R ekvivalent i lengden (): >> med (mtcars, lengde (mpg [hp> 150])) [1] 13
Overføre kolonner eller rader
Noen ganger må du transponere dataene dine fra rad til kolonner eller omvendt. I R er funksjonen til å transponere en matrise t (): >> xx [1] [2] [3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12
For å få transponeringen av en matrise, bruk t (): >> t (x) [1] [2] [3] [4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12
Du kan også bruke t () til å transponere datarammer, men vær forsiktig når du Gjør dette. Resultatet av en transposisjon er alltid en matrise (eller array). Fordi arrays alltid har bare en type av variabel, for eksempel numerisk eller tegn, kan variabeltypene av resultatene ikke være det du forventer.
Finne unike eller dupliserte verdier
For å identifisere alle unike verdiene i dataene dine, bruk unike () -funksjonen. Prøv å finne de unike verdiene for antall sylindere i mtcars: >> unik (mtcars $ cyl) [1] 6 4 8
-
Noen ganger vil du vite hvilke verdier av dataene dine er duplikater. Avhengig av situasjonen din, vil disse duplikatene være gyldige, men noen ganger dupliserte oppføringer kan tyde på datapostproblemer.
-
Funksjonen for å identifisere dupliserte oppføringer er duplisert (). I den innebygde datasettet iris er det en duplisert rad i linje 143. Prøv det selv: >> dupeshodet (dupes) [1] FALSK FALSK FALSK FALSK FALSK FALSE> hvilken (dupes) [1] 143> iris [dupes,] Sepal. Lengde Sepal. Bredd Kronblad. Lengde kronblad. Bredde Arter 143 5. 8 2. 7 5. 1 1. 9 virginica
Fordi resultatet av duplisert () er en logisk vektor, kan du bruke den som en indeks for å fjerne rader fra dataene dine. For å gjøre dette, bruk negasjonsoperatøren - utropstegnet (som i! Dupes): >> iris [! Dupes,]> nrow (iris [! dupes,]) [1] 149
Arbeide med oppslagstabeller
I et regnearksprogram som Excel kan du opprette oppslagstabeller med funksjonene.
I R kan det være praktisk å bruke fusjon () eller kamp (). Kampen () -funksjonen returnerer en vektor med posisjonene til elementene som samsvarer med oppslagsverdien din.
For eksempel, for å finne plasseringen av elementet "Toyota Corolla" i radnavnet på MTV, prøv følgende: >> Indeksindeks [1] 20> Mtcars [Index, 1: 4] mpg cyl disp hp Toyota Corolla 33. 9 4 71. 1 65
Arbeide med pivottabeller
For enkle tabeller i R kan du bruke tapply () -funksjonen til å oppnå lignende resultater som pivottabeller i Excel.Her er et eksempel på bruk av tapply () for å beregne gjennomsnittlig hk for biler med forskjellig antall sylindere og gir: >> med (mtcars, tapply (hp, liste (cyl, gir))) 3 4 5 4 97. 0000 76. 0 102. 0 6 107. 5000 116. 5 175. 0 8 194. 1667 NA 299. 5
For litt mer komplekse tabeller - det vil si tabeller med mer enn to kryssklassifiserende faktorer - bruk aggregatet () -funksjon: >> aggregat (hp ~ syl + gir + am, mtcars, middel) sykkel gear am hp 1 4 3 0 97. 00000 2 6 3 0 107. 50000 3 8 3 0 194. 16667 4 4 4 0 78. 50000 5 6 4 0 123. 00000 6 4 4 1 75. 16667 7 6 4 1 110. 00000 8 4 5 1 102. 00000 9 6 5 1 175. 00000 10 8 5 1 299. 50000
Bruke Målsøket og løsningen
I R gir optimaliseringen () -funksjonen en ganske enkel mekanisme for optimalisering av funksjoner.
Tenk deg at du er salgsdirektør for et selskap, og du må sette den beste prisen for produktet. Med andre ord, finn prisen på et produkt som maksimerer inntekter.
I økonomi sier en enkel prismodell at folk kjøper mindre av et gitt produkt når prisen øker. Her er en veldig enkel funksjon som har denne oppførselen: >> salg <- funksjon (pris) {100 - 0. 5 * pris}
Forventet inntekt er da bare et produkt av pris og forventet salg: >> inntekter <- funksjon (pris) {pris * salg (pris)}
Du kan bruke kurven () til å plotte kontinuerlige funksjoner. Dette tar en funksjon som inngang og produserer et plott. Prøv å plotte oppførselen til salg og inntekter ved hjelp av kurven () -funksjonen, varierende pris fra $ 50 til $ 150: >> oldpar kurve (salg, fra = 50 til 150, xname = "pris", hoved = "salg ")> Kurve (inntekt, fra = 50 til = 150, xname =" pris ", hoved =" Inntekt ")> par (oldpar)
Dine resultater skal se ut som dette.
En modell av forventet salg og inntekter.
Du har en fungerende modell for salg og inntekter. Du kan se umiddelbart at det er et poeng med maksimal inntekt. Deretter bruker du R-funksjonen til å optimalisere () for å finne verdien av det maksimale. For å bruke optimalisere () må du fortelle hvilken funksjon å bruke (i dette tilfellet inntekter ()), samt intervallet (i dette tilfellet priser mellom 50 og 150). Som standard optimaliserer () søk etter en minimumsverdi, så i dette tilfellet må du fortelle det å søke etter maksimal verdi: >> optimalisere (inntekt, intervall = c (50, 150), maksimum = SANT) $ maksimum [1] 100 $ mål [1] 5000
Og der går du. La en pris på $ 100, og forvent å få $ 5, 000 i inntekter.