Indholdsfortegnelse:
- Tilføjelse af række og kolonne totaler
- trim
- Noget andet, du sandsynligvis gjorde meget i Excel, beregner betingede summer og tæller med funktioner sumif () og countif ().
- Sig, du vil beregne et betinget gennemsnit af brændstofeffektivitet i mtcars. Du gør dette med den gennemsnitlige () funktion. For at få brændstofeffektiviteten for biler på hver side af en tærskel på 150 hestekræfter, 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å bruge t () til at transponere datarammer, men pas på, når du Gør dette. Resultatet af en transposition er altid en matrix (eller array). Da arrayer altid kun har en type af variabel, som f.eks. numerisk eller tegn, er de variable typer af dine resultater muligvis ikke det, du forventer.
- For at finde placeringen af elementet "Toyota Corolla" i rækken navne på MTV'er, prøv følgende: >> indeksindeks [1] 20> mtcars [indeks, 1: 4] mpg cyl disp hp Toyota Corolla 33. 9 4 71. 1 65
- Forestil dig at du er salgsdirektør for et firma, og du skal fastsætte den bedste pris for dit produkt. Med andre ord, find prisen på et produkt, der maksimerer indtægterne.
Video: I FOUND an OCEAN TEMPLE in Minecraft! (epic) - Part 11 2025
Regnearket er nok et af de mest anvendte pc-applikationer - og med god grund: Regneark gør det meget nemt at udføre beregninger og andre operationer på tabel data. Men regneark udgør også nogle risici: De er nemme at korrupte og meget vanskelige at debugere. Den gode nyhed er, at du kan bruge R til at lave mange af de samme ting, du plejede at gøre i regneark.
Tilføjelse af række og kolonne totaler
En opgave, som du ofte gør i et regneark, beregner række eller kolonne totaler. Den nemmeste måde at gøre dette på er at bruge funktionerne rowSums () og colSums (). På samme måde skal du bruge rowMeans () og colMeans () til at beregne midler.
Prøv det på den indbyggede datasæt iris. Fjern først den femte kolonne, fordi den indeholder tekst, der beskriver arten af iris: >> iris. num <- iris [-5]
Beregn derefter summen og middelværdien for hver kolonne:
Formateringsnumre
Du kan bruge format () til at slå dine tal til smuk tekst, klar til udskrivning. Denne funktion tager en række argumenter til at kontrollere formatet af dit resultat. Her er et par:
trim
:En logisk værdi. Hvis det er FALSK, tilføjer det mellemrum til højre - retfærdiggør resultatet. Hvis det er sandt, undertrykker det de førende rum.
-
cifre : Hvor mange signifikante cifre af numeriske værdier, der skal vises.
-
nsmall : Mindste antal cifre efter decimaltegnet.
-
Desuden styrer du formatet for decimaltegnet med decimaltal. markér markeringen mellem intervaller før decimaltegnet med stort. mærke og mærket mellem intervaller
efter decimaltegnet med lille. mærke. Du kan f.eks. Udskrive nummeret 12345. 6789 med et komma som decimaltal, mellemrum som det store mærke og prikker som det lille mærke: >> format (12345, 6789, cifre = 9, decimaltegnet. mark = ",", + stor. mark = "", lille.mark = ".", lille.interval = 3) [1] "12 345, 678. 9" Som mere praktisk eksempel midlerne til nogle kolonner i mtcars og derefter udskrive resultaterne med to cifre efter decimaltegnet, brug følgende: >> x format (x, cifre = 2, nsmall = 2) mpg cyl disp hp "20.09 "" 6. 19 "" 230. 72 "" 146. 69 " Bemærk, at resultatet ikke længere er et nummer, men en tekststreng. Så vær forsigtig, når du bruger nummerformatering - dette skal være det sidste trin i din rapporterings arbejdsgang.
Hvis du er bekendt med programmering på sprog svarende til C eller C ++, kan du også finde funktionen sprintf () nyttig. Denne indpakning giver dig mulighed for at indsætte dit formaterede nummer direkte i en streng.
Her er et eksempel på at konvertere tal til procentdele: >> x sprintf ("%. 1f %%", 100 * x) [1] "50. 0% "" 51. 0% "" 52. 0% "" 53. 0% "" 54. 0% "" 55. 0% "
Dette er hvad det gør: Det første argument til sprintf () angiver formatet - i dette tilfælde"%. 1f %% ". Format argumentet bruger specielle bogstaver, der angiver, at funktionen skal erstatte denne bogstav med en variabel og anvende nogle formateringer. Bogstaverne begynder altid med% symbolet. Så i dette tilfælde%. 1f betyder at formatere den første tilførte værdi som et fast punktværdi med et ciffer efter decimaltegnet, og %% er en bogstav, som betyder udskrivning a%.
For at formatere nogle tal som valuta - i dette tilfælde US dollars - brug: >> sæt. frø (1)> x sprintf ("$% 3. 2f", x) [1] "$ 265. 51" "$ 372. 12" "$ 572. 85" "$ 908. 21" "$ 201. 68 "
Funktionen sprintf () giver dig en alternativ måde at indsætte værdien af en variabel i en streng: >> tingpris sprintf ("% s cost $% 3. 2f ", ting, pris) [1] "Brød koster $ 2. 10" "cookies koster $ 4. 00"
Hvad der sker her er, fordi du har leveret to vektorer (hver med to elementer) til sprintf (), er dit resultat en vektor med to elementer. R cykler gennem elementerne og placerer dem i sprintf () bogstaverne.
Du kan gøre alt med pasta () og format (), som du kan gøre med sprintf (), så du behøver ikke rigtig brug for det. Men når du gør det, kan det forenkle din kode.
Sortering af data
For at sortere data i R, bruger du funktionen sort () eller ordre ().
For at sortere datarammen mtcars i stigende eller faldende rækkefølge af kolonnen hp, brug: >> med (mtcars, mtcars [order (hp),))> med (mtcars, mtcars [rækkefølge = TRUE),])
Valg af, hvis
Regneark giver dig mulighed for at udføre alle slags "Hvad hvis? "Analyserer. En måde at gøre dette på er at bruge funktionen if () i et regneark.
R har også if () -funktionen, men det bruges mest til strømstyring i dine scripts. Fordi du typisk vil udføre en beregning på en hel vektor i R, er det normalt mere hensigtsmæssigt at bruge funktionen ifelse ().
Her er et eksempel på at bruge ifelse () til at identificere biler med høj brændstofeffektivitet i datasættet mtcars: >> mtcars <- transform (mtcars, + mpgClass = ifelse (mpg mtcars [mtcars $ mpgClass == "High",]
Beregning af betingede totaler
Noget andet, du sandsynligvis gjorde meget i Excel, beregner betingede summer og tæller med funktioner sumif () og countif ().
Du kan gøre det samme i et af to måder i R:
Brug ifelse.
Beregn blot målingen af interesse på en delmængde af dine data.
Sig, du vil beregne et betinget gennemsnit af brændstofeffektivitet i mtcars. Du gør dette med den gennemsnitlige () funktion. For at få brændstofeffektiviteten for biler på hver side af en tærskel på 150 hestekræfter, 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
Tæller antallet af elementer i en vektor er det samme som spørger om dets længde. Dette betyder, at Excel-funktionstællingen) har en R ækvivalent i længden (): >> med (mtcars, længde (mpg [hp> 150])) [1] 13
Gennemsætning af kolonner eller rækker
Nogle gange skal du transponere dine data fra rækker til kolonner eller omvendt. I R er funktionen til at transponere en matrix t (): >> xx [1] [2] [3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12
For at få transponeringen af en matrix, brug 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å bruge t () til at transponere datarammer, men pas på, når du Gør dette. Resultatet af en transposition er altid en matrix (eller array). Da arrayer altid kun har en type af variabel, som f.eks. numerisk eller tegn, er de variable typer af dine resultater muligvis ikke det, du forventer.
Find unikke eller duplikerede værdier
For at identificere alle de unikke værdier i dine data skal du bruge den unikke () funktion. Prøv at finde de unikke værdier for antallet af cylindre i mtcars: >> unik (mtcars $ cyl) [1] 6 4 8
-
Nogle gange vil du vide, hvilke værdier af dine data der er duplikater. Afhængigt af din situation vil disse duplikater være gyldige, men nogle gange kan duplikatposter angive dataindtastningsproblemer.
-
Funktionen til at identificere gentagne indgange duplikeres (). I den indbyggede datasæt iris er der en dublet række i linje 143. Prøv det selv: >> dupes hoved (dupes) [1] FALSK FALSK FALSK FALSK FALSK FALSE> hvilken (dupes) [1] 143> iris [dupes,] Sepal. Længde Sepal. Bredde kronblad. Længde kronblad. Breddearter 143 5. 8 2. 7 5. 1 1. 9 virginica
Da resultatet af dupliceret () er en logisk vektor, kan du bruge den som et indeks til at fjerne rækker fra dine data. For at gøre dette skal du bruge negation operatøren - udråbstegn (som i! Dupes): >> iris [! Dupes,]> nrow (iris [! dupes,]) [1] 149
Arbejde med opslagstabeller
I et regnearksprogram som Excel kan du oprette opslagstabeller med funktionerne eller en kombination af indeks og match.
I R kan det være praktisk at bruge flette () eller match (). Funktionen match () returnerer en vektor med placeringen af elementer, der matcher din opslagsværdi.
For at finde placeringen af elementet "Toyota Corolla" i rækken navne på MTV'er, prøv følgende: >> indeksindeks [1] 20> mtcars [indeks, 1: 4] mpg cyl disp hp Toyota Corolla 33. 9 4 71. 1 65
Arbejde med pivottabeller
For enkle tabeller i R kan du bruge funktionen tapply () til at opnå lignende resultater som pivottabeller i Excel.Her er et eksempel på at bruge tapply () til at beregne gennemsnitlige hk for biler med forskellige antal cylindre og gear: >> med (mtcars, tapply (hp, liste (cyl, gear), gennemsnit)) 3 4 5 4 97. 0000 76. 0 102. 0 6 107. 5000 116. 5 175. 0 8 194. 1667 NA 299. 5
For lidt mere komplekse tabeller - det vil sige tabeller med mere end to krydsklassificerende faktorer - brug aggregatet () funktion: >> aggregat (hk ~ cyl + gear + am, mtcars, middel) cyl 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
Brug af målsøgningen og løsningen
I R giver funktionen optimere () en ret simpel mekanisme til optimering af funktioner.
Forestil dig at du er salgsdirektør for et firma, og du skal fastsætte den bedste pris for dit produkt. Med andre ord, find prisen på et produkt, der maksimerer indtægterne.
I økonomi hedder en simpel prismodel, at folk køber mindre af et givet produkt, når prisen stiger. Her er en meget enkel funktion, der har denne adfærd: >> salg <- funktion (pris) {100 - 0. 5 * pris}
Forventede indtægter er så simpelthen produktet af pris og forventet salg: >> omsætning <- funktion (pris) {pris * salg (pris)}
Du kan bruge kurven () til at plotte kontinuerlige funktioner. Dette tager en funktion som input og producerer et plot. Prøv at plotte opførelsen af salg og indtægter ved hjælp af kurven () funktionen, varierende pris fra $ 50 til $ 150: >> oldpar kurve (salg, fra = 50 til 150, xname = "pris", hoved = "salg ")> Kurve (indtjening, fra = 50 til 150, xname =" pris ", hoved =" indtjening ")> par (oldpar)
Dine resultater skal se ud som dette.
En model af forventet salg og omsætning.
Du har en arbejdsmodel med salg og indtægter. Du kan straks se, at der er et punkt med maksimal indtjening. Brug derefter R-funktionen til at optimere () for at finde værdien af dette maksimum. For at bruge optimere () skal du fortælle hvilken funktion der skal bruges (i dette tilfælde indtægter ()) samt intervallet (i dette tilfælde priser mellem 50 og 150). Som standard optimerer () søgninger efter en minimumsværdi, så i dette tilfælde skal du fortælle om at søge efter maksimumsværdi: >> optimer (indtægt, interval = c (50, 150), maksimum = SAND) $ maksimum [1] 100 $ mål [1] 5000
Og der går du. Oplad en pris på $ 100, og forvent at få $ 5, 000 i omsætning.