Hem Personliga finanser 10 Saker du kan göra i R som du skulle ha gjort i Microsoft Excel - dummies

10 Saker du kan göra i R som du skulle ha gjort i Microsoft Excel - dummies

Innehållsförteckning:

Video: Top 25 Excel 2016 Tips and Tricks 2024

Video: Top 25 Excel 2016 Tips and Tricks 2024
Anonim

Kalkylbladet är förmodligen en av de mest använda PC-applikationerna - och med goda skäl: Kalkylblad gör det mycket enkelt att utföra beräkningar och andra operationer på tabell data. Men kalkylblad utgör också vissa risker: De är lätta att korrupta och mycket svåra att felsöka. Den goda nyheten är att du kan använda R för att göra många av samma saker som du brukade göra i kalkylblad.

Lägga till rad och kolumn Totals

En uppgift som du ofta gör i ett kalkylblad beräknar rad eller kolumn totals. Det enklaste sättet att göra detta är att använda funktionerna rowSums () och colSums (). På samma sätt använder du rowMeans () och colMeans () för att beräkna medel.

Prova det på den inbyggda datasettens iris. Först, ta bort den femte kolumnen, eftersom den innehåller text som beskriver arten av iris: >> iris. num <- iris [-5]

Beräkna summan och medelvärdet för varje kolumn:

>> colSums (iris. Num)> colMeans (iris. Num)

Dessa två funktioner är mycket praktiska, men du kanske vill beräkna någon annan statistik för varje kolumn eller rad. Det finns ett enkelt sätt att kryptera rader eller kolumner i en array eller dataram: funktionen () (). Till exempel, att få minst en kolumn är samma som att tillämpa min () -funktionen till den andra dimensionen av dina data: >> tillämpa (iris nr, 2, min)> tillämpa (iris nr, 2, max)
Formateringsnummer

Du kan använda formatet () för att sätta dina nummer i vacker text, redo för utskrift. Denna funktion tar ett antal argument för att styra formatet på ditt resultat. Här är några:

trim

:

Ett logiskt värde. Om det är felaktigt lägger det till mellanslag för att rättfatta resultatet. Om TRUE, det undertrycker de ledande utrymmena.

  • siffror : Hur många signifikanta siffror av numeriska värden som ska visas.

  • nsmall : Minsta antal siffror efter decimal.

  • Dessutom kontrollerar du formatet för decimaltalet med decimal. markera markeringen mellan intervallerna före decimaltalet med stort. markera och märket mellan intervall

efter decimaltalet med litet. markera. Till exempel kan du skriva ut numret 12345. 6789 med ett komma som decimal, mellanslag som det stora märket och prickar som småmärket: >> format (12345, 6789, siffror = 9, decimaltal. mark = ",", + stor. mark = "", liten. mark = ".", liten.intervall = 3) [1] "12 345, 678. 9" Som ett mer praktiskt exempel medel för vissa kolumner i mtcars och sedan skriva ut resultaten med två siffror efter decimalpunkten, använd följande: >> x format (x, siffror = 2, nsmall = 2) mpg cyl disp hp "20.09 "" 6. 19 "" 230. 72 "" 146. 69 " Observera att resultatet inte längre är ett nummer utan en textsträng. Var därför försiktig när du använder nummerformatering - detta borde vara det sista steget i ditt rapporterings arbetsflöde.

Om du är bekant med programmering på språk som liknar C eller C ++, kan du också hitta funktionen sprintf (). Med denna omslag kan du klistra in ditt formaterade nummer direkt i en sträng.

Här är ett exempel på att konvertera siffror till procentandelar: >> x sprintf ("%. 1f %%", 100 * x) [1] "50. 0% "" 51. 0% "" 52. 0% "" 53. 0% "" 54. 0% "" 55. 0% "

Det här är vad det gör: Det första argumentet till sprintf () anger formatet - i det här fallet"%. 1f %% ". Formatargumentet använder speciella bokstäver som indikerar att funktionen ska ersätta denna bokstav med en variabel och tillämpa viss formatering. Bokstäverna börjar alltid med% -symbolen. Så, i det här fallet,%. 1f innebär att formatera det första tillförda värdet som ett fast punktvärde med en siffra efter decimalpunkten, och %% är en bokstavlig som betyder utskrift a%.

För att formatera vissa siffror som valuta - i detta fall, US-dollar - använd: >> set. frö (1)> x sprintf ("$% 3. 2f", x) [1] "$ 265. 51" "$ 372. 12" "$ 572. 85" "$ 908. 21" "$ 201. 68 "

Funktionen sprintf () ger dig ett alternativt sätt att klistra in värdet på en variabel i en sträng: >> prissumma sprintf ("% s kostnad $% 3. 2f ", saker, pris) [1] "Bröd kostar $ 2. 10" "kakor kostar $ 4. 00"

Vad händer här är det eftersom du gav två vektorer (vardera med två element) till sprintf (), är resultatet ett vektor med två element. R cyklar genom elementen och placerar dem i sprintf () bokstäverna.

Du kan göra allt med pasta () och format () som du kan göra med sprintf (), så du behöver inte riktigt använda den. Men när du gör det kan det förenkla din kod.

Sortera data

För att sortera data i R, använder du funktionen sort () eller order ().

För att sortera datarammens mtcars i ökande eller minskande ordning för kolumnen hp, använd: >> med (mtcars, mtcars [order (hp),))> med (mtcars, mtcars [order (hp, minskande = TRUE),])

Gör val med om

Kalkylblad ger dig möjlighet att utföra alla typer av "Vad händer om? "Analyserar. Ett sätt att göra detta är att använda funktionen if () i ett kalkylblad.

R har också if () -funktionen, men används mest för flödesstyrning i dina skript. Eftersom du vanligtvis vill utföra en beräkning på en hel vektor i R, är det vanligtvis lämpligare att använda funktionen ifelse ().

Här är ett exempel på att använda ifelse () för att identifiera bilar med hög bränsleeffektivitet i datasetet mtcars: >> mtcars <- transform (mtcars, + mpgClass = ifelse (mpg mtcars [mtcars $ mpgClass == "High",]

Beräkning av villkorliga totaler

Något annat som du förmodligen gjorde mycket i Excel beräknar villkorliga summor och räknar med funktionerna sumif () och countif ().

Du kan göra samma sak i en av två sätt i R:

Använd ifelse.

Beräkna enkelt måttet av intresse på en delmängd av dina data.

Säg att du vill beräkna ett villkorligt medelvärde av bränsleeffektivitet i mtcars. Du gör detta med medelvärdet (). För att få bränsleeffektiviteten för bilar på vardera sidan av ett tröskelvärde på 150 hästkrafter, försök följande: >> med (mtcars, mean (mpg)) [1] 20. 09062> med (mtcars, mean (mpg [hp med (mtcars, mean (mpg [hp> = 150])) [1] 15. 40667

Att räkna antalet element i en vektor är detsamma som att fråga om dess längd. Det betyder att Excel-funktionen countif) har en R ekvivalent längd (): >> med (mtcars, längd (mpg [hp> 150])) [1] 13

Överför kolumner eller rader

Ibland behöver du transponera dina data från rader till kolumner eller vice versa. I R är funktionen att transponera en matris t (): >> xx [1] [2] [3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12

För att få transponeringen av en matris, använd t (): >> t (x) [1] [2] [3] [4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12

Du kan också använda t () för att transponera datarammer, men var försiktig när du Gör så här. Resultatet av ett införlivande är alltid en matris (eller array). Eftersom arrayer alltid har bara en typ av variabel, till exempel numerisk eller tecken, kanske inte de olika typerna av dina resultat är vad du förväntar dig.

Hitta unika eller duplicerade värden

Använd unika () -funktionen om du vill identifiera alla unika värden i dina data. Försök hitta de unika värdena på antalet cylindrar i mtcars: >> unik (mtcars $ cyl) [1] 6 4 8

  • Ibland vill du veta vilka värden av dina data som är duplicerade. Beroende på din situation kommer dessa dubbletter att vara giltiga, men ibland kan dubbla poster ange datapostproblem.

  • Funktionen för att identifiera dubbla poster är duplicerad (). I den inbyggda datasettens iris finns en dubblett rad i rad 143. Prova själv: >> dupeshuvud (dupes) [1] FALSK FALSK FALSK FALSK FALSK FALSK> vilken (dupes) [1] 143> iris [dupes] Sepal. Längd Sepal. Bredd Kronblad. Längd kronblad Bredd Arter 143 5.8 2. 7 5. 1 1. 9 virginica

Eftersom resultatet av duplicerat () är en logisk vektor kan du använda den som ett index för att ta bort rader från dina data. För att göra detta, använd negationsoperatören - utropstecken (som i! Dupes): >> iris [! Dupes,]> nrow (iris [! dupes,]) [1] 149

Arbeta med uppslagstabeller

I en kalkylarksapplikation som Excel kan du skapa uppslagstabeller med funktionerna vallokup eller en kombination av index och matchning.

I R kan det vara bekvämt att använda sammanslagning () eller matchning (). Funktionen match () returnerar en vektor med positionerna för element som matchar ditt uppslagsvärde.

Till exempel, för att hitta platsen för elementet "Toyota Corolla" i radnamnen på MTV, prova följande: >> indexindex [1] 20> mtcars [index, 1: 4] mpg cyl disp hp Toyota Corolla 33. 9 4 71. 1 65

Arbeta med pivottabeller

För enkla tabeller i R kan du använda funktionen tapply () för att uppnå liknande resultat som pivottabeller i Excel.Här är ett exempel på att använda tapply () för att beräkna genomsnittliga hk för bilar med olika antal cylindrar och redskap: >> med (mtcars, tapply (hp, lista (cyl, växel), medelvärde)) 3 4 5 4 97. 0000 76. 0 102. 0 6 107. 5000 116. 5 175. 0 8 194. 1667 NA 299. 5

För lite mer komplexa tabeller - det vill säga bord med mer än två korsklassificeringsfaktorer - använd aggregatet () funktion: >> aggregat (hp ~ cyl + växel + am, mtcars, medelvärde) 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

Användning målsökningen och lösaren

I R ger funktionen optimera () en ganska enkel mekanism för att optimera funktioner.

Tänk dig att du är försäljningschef för ett företag och du måste ange det bästa priset för din produkt. Med andra ord, hitta priset på en produkt som maximerar intäkterna.

I ekonomi anges att en enkel prismodell anger att människor köper mindre av en viss produkt när priset ökar. Här är en mycket enkel funktion som har detta beteende: >> försäljning <- funktion (pris) {100 - 0. 5 * pris}

Förväntad omsättning är då helt enkelt produkt av pris och förväntad försäljning: >> intäkter <- funktion (pris) {pris * försäljning (pris)}

Du kan använda kurvan () för att plotta kontinuerliga funktioner. Detta tar en funktion som ingång och ger en plot. Försök att plotta uppförandet av försäljning och intäkter med funktionen kurva (), varierande pris från $ 50 till $ 150: >> oldpar-kurva (försäljning, från = 50 till 150, xname = "pris", huvud = "Försäljning ")> Kurva (intäkter, från = 50 till = 150, xname =" pris ", huvud =" intäkter ")> par (oldpar)

Ditt resultat ska likna detta.

En modell av förväntade försäljningar och intäkter.

Du har en fungerande modell för försäljning och intäkter. Du kan se omedelbart att det finns en punkt med maximal intäkt. Använd sedan R-funktionen optimera () för att hitta värdet av det maximala. För att använda optimera () måste du berätta vilken funktion som ska användas (i detta fall intäkter ()) samt intervallet (i det här fallet priser mellan 50 och 150). Som standard optimerar () sökningar efter ett minimivärde, så i det här fallet måste du berätta för att söka efter maximalt värde: >> optimera (intäkter, intervall = c (50, 150), maximalt = TRUE) $ maximum [1] 100 $ mål [1] 5000

Och där går du. Ladda upp ett pris på $ 100, och förvänta dig att få $ 5, 000 i intäkter.
10 Saker du kan göra i R som du skulle ha gjort i Microsoft Excel - dummies

Redaktörens val

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

Hur man justerar inställningar för din bakgrund i Gamestar Mechanic - dummies

När du har lagt till en Bakgrund till ditt spel kan du ytterligare anpassa bakgrunden i Gamestar Mechanic genom att använda två ytterligare alternativ i dialogrutan Nivåinställningar: Bakgrundsrullning och Bakgrundsstil. Bakgrundsrullning Parallaxen är en viktig egenskap hos bakgrunden i spel där alternativet Fler skärm är valt. Redigerbar ...

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Hur man balanserar svårigheten hos ett Gamestar Mechanic Game - dummies

Det vanligaste exemplet på balansering ett spel i Gamestar Mechanic balanserar svårigheten: Gör inte spelet så lätt att det är tråkigt och gör det inte så svårt att det är frustrerande. För att finjustera spelets svårighet måste du göra små förändringar utan att bli förbunden till ...

För att kalibrera accelerometern för ditt HTML5-spel - dummies

För att kalibrera accelerometern för ditt HTML5-spel - dummies

Som standard antar HTML5-spelaccelerometern Det neutrala läget är perfekt horisontellt - det vill säga enheten ligger platt på ett bord. Men det här är mobila enheter, och spelare vill ofta ha det neutrala stället att vara någon annanstans. Grundläggande tekniken för att kalibrera tiltkontrollen är att hålla koll på en ...

Redaktörens val

Gör äta rena förändringar i livet - dummies

Gör äta rena förändringar i livet - dummies

Rena ätförändringar i ditt liv är inte svåra att göra, men de tar lite gumption, uthållighet och övning. När du gör en koncentrerad insats för att äta lägre på livsmedelskedjan, märka hur detta beslut påverkar andra delar av ditt liv. För att vara framgångsrik måste du tänka på mat och äta annorlunda, vilka ...

Köttfri måndag och hållbarhet - dummies

Köttfri måndag och hållbarhet - dummies

Köttfri måndag är ett ganska nytt koncept som ofta nämns på Facebook och Twitter. Allt det betyder är att en dag i veckan väljer du att äta vegetarian eller vegan. Inte bara kan Meatless Monday spara pengar (eftersom kött är dyrt), men planen hjälper miljön (eftersom stora kött-, fläsk- och kycklingsanläggningar skapar nitrat ...

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

5 Hälsofördelar Kopplade till Medelhavsdiet - dummies

Medelhavsdieten har länge varit prydnad för vilket ger hälsoeffekter, såsom att minska kranskärlssjukdom och minska risken för vissa cancerformer. Inklusive färska grönsaker och frukter, baljväxter och hälsosamma fetter i din kost kan hjälpa dig att förbättra din hälsa på många sätt. Forskning visar att en traditionell medelhavsdiet minskar ...

Redaktörens val

Hur man arbetar med Nikon D3300-minneskort - dummies

Hur man arbetar med Nikon D3300-minneskort - dummies

Som mediet som lagrar dina bildfiler , Nikon D3300s minneskort är en viktig del av din kamera. Följ dessa tips för att köpa och behålla kort: Köpkort: När du handlar för ett SD-minneskort är den enda specifikationen som noterar annat än kortkapaciteten kort hastighet, vilket indikerar hur snabbt data ...

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Timerfotografering: Nikon D5200-dummies med Nikon D5200

Med intervall Timer Fotografering på Nikon D5200, du kan ställa in kameran för att automatiskt släppa avtryckaren med intervall som sträcker sig från sekunder till timmar från varandra. Med den här funktionen kan du fånga upp ett ämne eftersom det förändras över tiden - en teknik som är känd som fotografering med tidsfördröjning - utan att behöva stå runt på ...

JPEG Filer på Nikon D3300-dummies

JPEG Filer på Nikon D3300-dummies

Uttalad "jay-peg", det här formatet är standardinställningen på din Nikon D3300, som det är på de flesta digitalkameror. JPEG är populär av två huvudorsaker: Omedelbar användbarhet: Alla webbläsare och e-postprogram kan visa JPEG-filer, så att du kan dela bilder online direkt efter att du har tagit dem. Du kan också få en ...