Programozás R-ben – Változóktól a vizualizációkig

Forrás csomópont: 1075636

Ez a cikk részeként jelent meg Adattudományi Blogaton

Az R programozási nyelvet statisztikai számításokhoz és grafikákhoz fejlesztették ki, így az egyik kívánt jelölt az adattudomány és -elemzés számára. Noha nem biztos, hogy nagy népszerűségnek örvend az újoncok körében, sok veterán és tapasztalt adattudós az R-t részesíti előnyben a Pythonnal szemben.

Bár a vélemények egyénenként eltérőek lehetnek, itt van egy szép cikk, amely összehasonlítja a nyelvek közötti fő különbségeket, és megvitatja, miért folyik ez a háború a legjobb adattudományi programozási nyelv címért:

R vagy Python? A felhőháború mögött meghúzódó okok | Shankar_DK

Bár közel sem vagyok képes hozzászólni ehhez a témához, szeretném elmondani, hogy minden kezdőnek ki kell próbálnia mindkét nyelvet, és magának kell eldöntenie, mit akar, ahelyett, hogy a tömeget követné. Saját tanácsomat követve nemrégiben elkezdtem tanulni az R-t, mivel a szemeszterem véget ért, és nem volt jobb dolgom, és arra gondoltam, hogy megosztom a tanulási utamat az olvasóimmal.

Mint mondtam, én magam tanulom először az R-t, így ha bármilyen hiba, fejlesztés vagy javaslat van, szívesen fogadom az alábbi megjegyzés rovatban. Biztos vagyok benne, hogy ez az oktatóanyag nagyon hasznos lesz kezdő olvasóim számára, úgyhogy kezdjük is!

Felhasznált adatkészletek:

1. Titanic – gépi tanulás a katasztrófából

2. Írisz fajok

3. Lakásárak – Fejlett regressziós technikák

1) Bevezetés

2) Változók és hozzárendelés

3) Adatstruktúrák

  • vektor
  • Tömbök és mátrixok
  • listák
  • Tényezők
  • DataFrames

4) Indexelés, szeletelés és szakaszolás

  • Vektorok és mátrixok
  • Listák és DataFrame-ek

5) Adatok importálása

6) Ellenőrzési nyilatkozatok

  • nyilatkozat
  • Az If/else If/else nyilatkozat
  • Miközben hurok
  • next és break utasítás
  • Hurokhoz
  • Beágyazott hurokhoz

7) Funkciók

8) DataFrame manipuláció segítségével dplyr

  • select()
  • szűrő()
  • rendezni()
  • átnevezni ()
  • mute()

9) Rajzolás R-vel

  • hisztogram
  • Boxplot
  • Szórványdiagram
  • Vonalrajz
  • Barplot
  • Kördiagram

10) Vizualizáció segítségével ggplot2

  • Szórványdiagram
  • hisztogram
  • Boxplot
  • Barplot
  • Sűrűség diagram
  • Hegedűs cselekmény
  • Kördiagram
  • Vonalrajz
  • Térképek

11) Korrelációs hőtérkép segítségével corrplot

12) Végjegyzet

Bevezetés

R egy programozási nyelv, valamint egy ingyenes statisztikai számítási környezet. 1993-ban adták ki, és a nyelv dialektusa S programozási nyelv. Csakúgy, mint a Python, az R is körülbelül 13000 XNUMX könyvtárcsomaggal rendelkezik az adatelemzéshez, statisztikai módszerekhez és vizualizációkhoz. Olvassa el a hivatalos dokumentumokat további részletekért, és most itt az ideje a technikai és izgalmas dolgoknak!

Programozás R-ben
Kép 1 

Változók és hozzárendelés az R-ben

R-ben a hozzárendelés operátora <-

x <- 21 # rendelje hozzá az 5-ös értéket az xx # változóhoz, írja ki x értékét

kimenet:

21

A zárójelet () használjuk az érték hozzárendelésére és egyidejű kinyomtatására.

(y <- 5) # 5 értéket ad az y változóhoz és kiírja az értékét

kimenet:

5

Adatstruktúrák az R-ben

Csakúgy, mint bármely más programozási nyelv, az R-nek is vannak adattípusoknak nevezett konténerei értékek vagy információk tárolására. Az R-nek 5 elsődleges adattípusa van:

  1. egészek
  2. páros
  3. logikus
  4. karakter
  5. bonyolult

Ezeken kívül vannak másodlagos adattípusok az R-ben, amelyek hasznosabbak és általánosan használtak

  • vektor: elsődleges adattípusok sorrendje
  • Tömbök és mátrixok: homogén vektorok többdimenziós gyűjteménye
  • listák: homogén vagy heterogén típusú vektorok (azaz különböző vagy hasonló típusú alapadattípusokat tartalmazhatnak)
  • Tényezők: kategorikus vagy sorszámú adat
  • Dataframe: lehetséges heterogén adattípusok többdimenziós tömbje

Nézzünk néhány példát ezekre a másodlagos adattípusokra:

1) Vektor

Ez hasonló adattípusok sorozata. Az összefűzés függvény c() adatok összekapcsolására használható vektorok létrehozásához. Egyszerű sorozatok hozhatók létre a kettőspont ':' operátor használatával.

a <- c(0.1, 0.9) # numerikus a b <- c(IGAZ, HAMIS) # logikai b d <- c("a", "b", "c") # karakter d e <- 1:10 # egész szám e f <- c(2+4i) # komplex f

kimenet:

vektor | programozás R-ben

A seq() A függvény egy meghatározott sorozatú vektor létrehozására is használható. Ez a függvény az alapértelmezett 1-es érték lépésszámát is elfogadja.

# 1-től 10-ig terjedő számsor 1-es lépésszámmal. seq(1, 10)

kimenet:

sorozat kimenet | programozás R-ben
# Számsorozat 2 lépésnyi szekvenciával (0, 20, by=2)

kimenet:

számsor 2. lépésméret | programozás R-ben
# 10-től 20-ig terjedő számsor, amelynek hossza 5 (egyenlő távolságra vannak) seq(10, 20, len=5)

kimenet:

számsor | programozás R-ben

A ismétlés() függvény vektor létrehozására szolgál meghatározott értékek replikálásával

rep(1:3, times=3) # ismétlés (1,2,3) 3x ismétlés(4:6, 2) # ismétlés (4,5,6) 2x ismétlés(1:3, mindegyik=3) # ismétlés mindegyik (1,2,3) 3x rep(c('one', 'two', 'IGAZ'), times=1:3) # repeat ('one', 'two', 'TRUE') frist elem 1x, második elem 2x és harmadik elem 3x

kimenet:

rep output | programozás R-ben

2) Tömbök és mátrixok

A funkció tömb () tömbök létrehozására szolgál és mátrix() mátrixokhoz. A tömbök mátrixokká alakíthatók a homályos() tulajdonság.

A segítségével sor- vagy oszlopmátrixok hozhatók létre rbind() és a cbind() funkciókat.

mat <- mátrix(1:12, nrow=3, ncol=4) mat dim(mat)

kimenet:

mátrix | programozás R-ben
arr <- array(1:12) arr

kimenet:

tömb kimenet | programozás R-ben
dim(arr) <- c(3,4) arr

kimenet: 

mátrix | programozás R-ben
x <- 1:5 y <- 6:10 cbind(x, y) rbind(x, y)

kimenet:

mátrix 2d | programozás R-ben

3) Listák

Csakúgy, mint a python listák, az R listái heterogén tárolók, és a következővel jönnek létre lista () funkciót.

L <- lista(10, 'név', IGAZ, 0.5) L

kimenet:

  1. 10
  2. 'név'
  3. TRUE
  4. 0.5
l <- lista(x=1:3, y=c('a', 'b', 'c'), z=c(T, F, F)) l

kimenet:

lista | programozás R-ben

4) Tényezők

A kategorikus és sorszámú adatokat az R-ben szereplő tényezők segítségével ábrázoljuk a tényező() funkció. A faktorszintek tartalmazzák az összes lehetséges értéket, amelyet az elemek felvehetnek.

f1 <- tényező(rep(1:3, idő=2)) f1 f2 <- tényező(c('a', 7, 'kék', 'kék')) f2

kimenet:

tényezők | programozás R-ben
x <- tényező(c("igaz", "hamis", "hamis", "igaz", "igaz"), szintek = c("hamis", "igaz")) x

kimenet: 

Igaz hamis | programozás R-ben
z <- faktor( c("Thr", "Thr", "Péntek", "Th", "Sze", "Sze", "Hétfő", "Ked"), levelek = c("H", "Ked" ", "Sze", "Thr", "Péntek"), rendezett = IGAZ ) z

kimenet:

nap | programozás R-ben
faktor(c("H", "H", "T", "H", "T")) táblázat(tényező(c("H", "H", "T", "H", "T") )))

kimenet:

Fej és farok | programozás R-ben

5) Adatkeretek

A Pythonnal ellentétben az R-nek beépített DataFrame tárolója van, és a Pandashoz hasonlóan működik. A data.frame() függvényt használjuk, ahol az argumentumok vektorok:

d <- c(1,2,3,4) e <- c('piros', 'sárga', 'zöld', NA) f <- c(TRUE, TRUE, HAMIS, IGAZ) mydataframe <- adatok. frame(d,e,f) mydataframe

kimenet:

adatkeretek | programozás R-ben

Az oszlopok nevét a segítségével szerkeszthetjük nevek () funkció:

nevek(sajatadatkeret) <- c("ID", "Szín", "Megvizsgálva")

mydataframe

kimenet:

mydataframe | programozás R-ben

Vagy megadhatja a nevet az adatkeret létrehozásakor:

dataframe3 <- data.frame(Age=c(50,35,71), Name=c('Joe', 'április', 'barna'), Passed=c(TRUE, HAMIS, IGAZ)) dataframe3

kimenet:

dataframe3 | programozás R-ben

Az egyes oszlopokat (vektorokat) a $ jellel és a vektor nevével érhetjük el:

# a 'Color' vektor lekérése a DataFrame mydataframe$Color-ból

kimenet:

'piros'. 'sárga'. 'zöld'. NA

Indexelés, szeletelés és szakaszolás R-ben

Az elemek indexeléséhez vagy kiválasztásához [, [[ vagy $ operátort használunk.

1) Vektorok és mátrixok

lényegében 4 féle értéket tehetünk zárójelbe [

  • pozitív egész számok vektora, amely esetben a megadott elemeket kinyerjük,
  • negatív egész számok vektora, ahol ezeket az elemeket eltávolítjuk,
  • a kérdéses vektorral azonos hosszúságú logikai operátor logikai értéket ad vissza, vagy
  • egy karaktervektor, ahol az elemek kinyerhetők
x 10 # logikai (T/F) értékkel tér vissza, ha x eleme nagyobb, mint 10 x[x>10] # x elemeinek kibontása, amelyek nagyobbak 10-nél

kimenet:

vektorok és mátrix
x <- 1:5 # 0-tól 20-ig terjedő sorozat hozzárendelése 2-es lépésekben az x változókhoz names(x) <- c("a", "b", "c", "d", "e") # rendelj hozzá neveket az x x vektorhoz

kimenet:

szeletelő vektorok | programozás R-ben

Hasonló indexelés végezhető mátrixokon és tömbökön is. Itt a vesszőket használjuk a méret meghatározására:

a <- 1:10 # tömb dim(a) <- c(2, 5) # mátrixgá aa[1,1] # kivonja az a mátrix elemét a sor=1, col=1 a[2, ] # kivonja az a mátrix második sorát a[, 5] # kivonja az a mátrix ötödik oszlopát (minden sor) a[, 2:4] # kivonja az a mátrix 2-4 oszlopait (minden sor)

kimenet:

mátrix 2X5 | programozás R-ben

2) Listák és DataFrame

A listák és a DF használatakor [[ és $-t is használunk.

mylist <- list(Logic = c(TRUE, FALSE, TRUE), Value = 1:3, Name = c("alma", "mac", "pc")) mylist # lista nyomtatása mylist[1] # nyomtatás a lista 1. eleme mylist$Name # nyomtatás nevek használatával

kimenet:

Listák és adatkeret | programozás R-ben
mylist[2] # a mylist typeof(mylist[2]) második elemének kinyerése # mylist[2] mylist[[2]] # mylist[2] typeof(mylist[2]] értékei) # mylist típusa[2]

kimenet:

lista és érték | programozás R-ben

Adatok importálása R-ben

1. A read.table() függvény táblázatos adatok adatkeretként történő importálására szolgál.

2. formátum – read.table( file_path , header = True, sep=” , ” )

3. header = True azt mondja R-nek, hogy az adatoknak van neve az oszlopoknak, és így a fájl első sorát használja oszlopnévként. A False az alapértelmezett érték, ha nincs megadva, akkor a program feltételezi, hogy a fájlnak nincs fejléce.

4. szeptember megadja a forrásfájlban használt határolót, például .csv fájlok a Kaggle-ben való adatok tárolására szolgálnak, ezért az alábbi kódunk adatainak betöltéséhez a vesszőt használjuk elválasztóként.

Példa: Az Iris adatkészlet importálása és az első 5 bejegyzés megtekintése:

path_iris = '../input/iris/Iris.csv' iris <- read.table(file=íriszútvonal, fejléc= IGAZ, sep =',') iris[1:5, ]

kimenet:

adatkeret 5X6

Titanic adatkészlet importálása és az első 5 bejegyzés megtekintése:

path_titanic = '../input/titanic/train.csv' titanic <- read.table(file=path_titanic, header= TRUE, sep =',') titanic[1:5, ]

kimenet:

titanic adatkészlet | programozás R-ben

Ellenőrző nyilatkozatok

A Controloll utasítások lehetővé teszik számunkra, hogy logikát vigyünk be kódjainkba. Az olyan kijelentések, mint Ha, ha más és a hurkok a Pythonhoz hasonlóan fut, így ez a szakasz egyszerűbb lehet azok számára, akik már ismerik.

1) If() utasítás

Syntax:

if (Feltétel)

{ Nyilatkozat }

A kód {utasítás} része csak akkor fut le, ha az If utasítás {feltétele} része teljesül. Ha a feltétel nem teljesül, az R értelmező kihagyja a kódnak azt a szegmensét.

Példa:

if (1 == 1) { print("igen!!")}

kimenet:

Igen!!

Jegyzet:

  • Az if() utasítás csak egyetlen elemet tud ellenőrizni, vektort nem. Ha vektorra alkalmazza, akkor csak azt ellenőrzi, hogy az első elem teljesíti-e a feltételt.
  • Ha az első elem nem teljesíti a feltételt, akkor egyik utasítás sem hajtódik végre, és nem végzetes figyelmeztetés jelenik meg, amely jelzi, hogy az if() utasítás törzse nem hajtódik végre. bármely() vagy all() függvényt kell használni a vektor igazságának ellenőrzésére.
  • Egysoros állításoknál a göndör kapcsos zárójelek elhagyhatók, de célszerű megtartani őket.

Példa:

x =5) {x^2}
figyelmeztető üzenet | programozás R-ben
x 0)) {x^2} x =10)) {x^2}

kimenet:

kimenet | programozás R-ben

2) Az If/else If/else nyilatkozat

Syntax:

if (Állapot) { Nyilatkozat }

egyébként, ha { Nyilatkozat }

más { Nyilatkozat }

(x <- runif(1, 0, 10)) # húzzunk egy véletlen számot egy egyenletes távolságból b/w 0 nd 1 if(x < 3) { # if x <3 rendeljen 10 értéket az yy 3 változóhoz && x < 6) { # else ha x 3 és 6 között van, rendeljen 0 értéket az yy változóhoz <- 0 } else { # else hozzárendelje a -10-et az yy <- -10 } y változóhoz

kimenet:

2.79287837212905 10

3) Míg hurok

A while ciklus egy feltétel ellenőrzésével kezdődik. Ha teljesül, a ciklus elindul, és a törzsben lévő összes utasítás végrehajtásra kerül. Miután a törzs véget ér, a feltételt újra ellenőrzik, és ha teljesül, a ciklus folytatódik.

Syntax:

i = 0

míg (i<5) {

nyomtatás (i^2)

i = i + 1

}

i = 0 # inicializálja az i-t while (i < 10){ # while i = 10}

kimenet:

[1] "hello" [1] "hello" [1] "hello" [1] "hello" [1] "hello" [1] "hello" [1] "hello" [1] "hello" [1 ] "hello" [1] "hello"

4) next és break utasítás

  • következő bármely ciklus egyetlen iterációjának kihagyására szolgál
  • szünet a ciklusból való kilépésre szolgál akkor és ott
# Az első 5 iteráció kihagyása for(i in 1:10) { if(i <= 5) { next } print(i^2) }

kimenet:

[1] 36 [1] 49 [1] 64 [1] 81 [1] 100
# nyomtat i-t 5-ig, és állítsa le a for(i) ciklust 1:10-ben { print(i) if(i > 5) { break } }

kimenet:

[1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] 6

5) A hurokhoz

A for ciklusoknak előre meghatározott számú iterációjuk van, és ehhez használjon változót. Leginkább iterálható objektumok feletti iterációra használják, mint a python.

Syntax:

mert (iterátor) {
Nyilatkozat }

for (i 1:5){ print(i + 1) }

kimenet:

[1] 2 [1] 3 [1] 4 [1] 5 [1] 6

A seq_along() függvény analóg a len () függvény a pythonban, egész sorozat generálására szolgál az iterátor hossza alapján.

kimenet:

[1] "hétfő" [1] "ked" [1] "sze" [1] "cs" [1] "péntek" [1] "szombat" [1] "vasárnap"

6) Beágyazott hurkok számára

  • A Beágyazott ciklusokhoz használható nagyobb dimenziójú objektumokkal, például listákkal vagy mátrixokkal való munkához.
  • A túl sok beágyazás azonban tönkreteheti a kód olvashatóságát, ezért általában javasolt a fészkek számát 2-3 max.
x <- mátrix(1:6, 2, 3) for(i in seq_len(nrow(x))) { for(j in seq_len(ncol(x))) { print(x[i, j]) } }

kimenet:

[1] 1 [1] 3 [1] 5 [1] 2 [1] 4 [1] 6

Funkciók

A függvények egy adott eredmény eléréséhez használt parancsok kötege. Általában a kód redundanciájának csökkentésére használják.

A függvény létrehozásának szintaxisa R-ben a következő:

az én funkcióm <- funkció(arg1, arg2)
{
végrehajtandó kódot
}

Ennek a függvénynek a neve funkcióm és 2 érvet fogad el. A függvények végrehajthatnak néhány utasítást, vagy felhasználhatók értékek visszaadására. A függvény használatához egyszerűen írjuk be:

funkcióm(var1, var2)

Példa 1:

Készítsünk függvényt a Pythagoras-tétel segítségével. A tétel azt mondja ki "Egy derékszögű háromszög befogójának hosszának négyzete egyenlő a másik két oldal hosszának négyzeteinek összegével."

programozás R-ben

Ahol a, b és c a derékszögű háromszög oldalai. Most hozzunk létre egy függvényt a hipotenusz megkeresésére, ha az oldalak adottak:

pyth <- function(x, y) { return(sqrt((x)^2 +(y)^2)) } pyth(3, 4)

kimenet:

5

Példa 2:

Írjunk függvényt a vektor összes elemének szórásának kiszámítására.

sd programozás R-ben
stdev <- function(x) { s <- sqrt(sum((x - mean(x))^2)/(hossz(x)-1)) s } z <- rnorm(20) stdev(z)

kimenet:

1.0321309737329

DataFrame manipuláció segítségével dplyr R-ben

dplyr | programozás R-ben

Az előző cikkben megtanultuk, hogyan importálhatunk strukturált adatokat DataFrame formájában a notebookunkba az R alap használatával. Ebben a részben megtanuljuk, hogyan kezeljük ezeket az adatokat következtetések levonásához és vizualizációk készítéséhez.

dplyr úgy lehet felfogni, mint a pandák Az R-ből sok mindent meg lehet csinálni egy DataFrame-mel, és hektikussá válik a natív R-ben csinálni. dplyr Van benne egy sor „igék”, egy saját maguk által kitalált kifejezés, amely segít a felhasználónak a legtöbb gyakori manipulációs kihívás megoldásában. Néhány ilyen „igék” a következők:

  • select()   -  nevük alapján választja ki a változókat
  • filter()   -  értékeik szerint választja ki az eseteket
  • arrange()  -   átrendezi a sorokat
  • mutate()   -   hozzáad és megtart egy meglévő változót
  • summarise()-  több értékből összefoglaló értéket hoz létre
  • group_by() -  segít a kötegelt műveletek végrehajtásában csoportokon

Most bemutatjuk a fenti „igék” használatát

# importáló könyvtár könyvtár(dplyr)

az adatok importálása:

path_iris = '../input/iris/Iris.csv' iris <- read.table(file=írisz útvonala, fejléc= IGAZ, sep =',') iris[1:5, ] path_titanic = '../input/ titanic/train.csv' titanic <- read.table(file=path_titanic, header= TRUE, sep =',') titanic[1:5, ]

kimenet:

kimenet | programozás R-ben
5X12 adatkeret

1. select()

data(iris) names(iris)[1:3] # kivonja az írisz adatkészlet első három oszlopát

kimenet:

'Csészelevél.Length' . 'Sepal.Width' . "Petal.Length"

df <- select(írisz, csészelevél.hossz:szirom.hossz) fej(df)

kimenet:

válasszon írisz | programozás R-ben

belül használjuk a '-' jelet select() hogy kihagyjuk a nem kívánt változókat.

df <- select(írisz, -(faj)) fej(df, 3)

kimenet:

válassza ki az írisz adatkeretet

A select() másik csodálatos tulajdonsága, hogy lehetővé teszi számunkra, hogy bizonyos minták alapján jelöljünk ki sorokat. Ez segítségével történik "kezd_vel"() és a "végződik"()

df_sepal <- select(írisz, "starts_with"('Sepal')) head(df_sepal, 3)
Válassza ki a funkciót

2. filter()

Csakúgy, mint select() oszlopok kivonására használták, szűrő() a DataFrame sorainak kinyerésére szolgál. Hasonló a részhalmaz() funkció a natív R-ben.

# szűrje ki a megfigyeléseket 6 cm-nél nagyobb csészelevélhosszal iris_filt 6.0) str(iris_filt)

kimenet:

szűrő
data(írisz) írisz_szűrő 6.0 & Szirom.Hossz < 6.0 ) fej(írisz_szűrő)

kimenet:

írisz szűrő

3. rendez()

Ez a funkció a DataFrame átrendezésére szolgál egy adott oszlop szerint. Az alapértelmezett a növekvő sorrend. Rendezzük át titanic DataFrame-ünket életkor szerint, a legfiatalabbtól a legidősebbig.

titanic_age_arraned <- arrange(titanic, Age) head(titanic_age_arraned, 3) tail(titanic_age_arraned, 3)

kimenet:

rendez |

4. átnevezés()

A rename() függvény az oszlopnevek megváltoztatására szolgál. a szintaxis a következő:

adatkeret <- rename( adatkeret, 'új_név_1' = régi_név_1' , 'új_név_2' = régi_név_2'….)

itt egy példa:

fej (írisz, 3)

kimenet:

átnevezés | Programozás R-ben
írisz <- rename(iris, 'sepal_length_[cm]'= Sepal.Length, 'sepal_width_[cm]'=Csészelevél.Szélesség, 'petal_length_[cm]'=Szirom.Hossz, 'szirom_szélesség_[cm]'=Szirom.Szélesség ) fej (írisz, 3)

kimenet:

írisz átnevezése

5. mute()

mute() egy új oszlop egy meglévő oszlopból való származtatására szolgál, a szülőoszlop megváltoztatása nélkül. Például hozzunk létre egy új oszlopot az Iris adatkeretben, amely az összes bejegyzés szirmainak és csészeleveleinek hossz-szélesség arányát mutatja.

data(iris) írisz <- mutate(iris, 'Petal_L2W_ratio' = Szirom.hossz/szirom.szélesség, 'Sepal_L2W_ratio' = Sepal.Length/Sepal.Width) fej(írisz, )

kimenet:

mutál | Programozás R-ben

Van egy hasonló funkció, átalakít() amely lényegében ugyanazt csinálja, mint mute(), de eldobja az összes nem átalakított oszlopot:

írisz <- transmute(iris, 'Petal_L2W_ratio' = Szirom.Hossz/Szirom.Szélesség, 'Sepal_L2W_ratio' = Csészelevél.Hossz/Szirom.Szélesség) fej(írisz, 3)

kimenet:

teljesítmény

Tervezés R-vel

Az adatok megjelenítése minden adattudományi projekt nagyon fontos része. Segít közvetíteni az adatok által elmondott üzenetet és történetet. Az R-nek saját vizualizációs könyvtára van, a ggplot2, amely az egyik legjobb vizualizációs könyvtár. A cikk későbbi részében a ggplot2-vel foglalkozunk, de először ismerkedjünk meg az R nyelvben honos vizualizációs technikákkal.

1. Hisztogram

életkor <- titanic$Age hist(age, xlab='Age', main="Utasok hisztogramja Életkor" )
hisztogram

2. Boxplot

y <- rnorm(100, mean=80, sd=3) boxplot(y, xlab='Y-változó', main='valószínűségi változó boxplotja' )
Boxplot programozás R-ben

3. Szórásdiagram

x <- runif(20) y <- 2 +3*x + rnorm(20) plot(x, y, xlab='x-axis', ylab='y-axis', main='A címet kérem', )
szórásdiagram | Programozás R-ben

4. Vonalrajz

x <- seq(-4, 4, len=100) y <- dnorm(x, mean=0, sd=1) plot(x, y, type='l', col='blue') title(' A standard normál sűrűsége')
Vonalrajz

5. Barplot

adat <- data.frame( név=c("A","B","C","D","E") , érték=c(3,12,5,18,45) ) barplot(adat $érték, nevek.arg=adat$név, horiz=HAMIS, xlab='Nevek', ylab='Érték', main='Barplot')
Barplot | Programozás R-ben

6. Piechart

szeletek <- c(36448.797, 26288.683, 23596.661, 3028.636, 2605.979, 1895.095) címkék <- c("Ázsia", "Észak-Amerika", "Európa", "Dél-Afrika" pite", "Oánia" szeletek, címkék = címkék, sugár = 2.0, main="2021 nominális GDP (milliárd dollár)")
kördiagram | Programozás R-ben

Vizualizálás segítségével ggplot2

ggplot | Programozás R-ben

című könyvben bemutatott ötletek köré épül fel a ggplot2 könyvtár A grafika nyelvtana (statisztika és számítástechnika) Segítségével könnyedén hozhatunk létre összetett telkeket 3 fő összetevő használatával: adatok, koordinátarendszer, és a geometria. Azt is megmondhatjuk a ggplot2-nek, hogy milyen esztétikát használjon, például színt, formát, méretet stb.

szintaxis:

ggplot(data, aes())+
geom()

adatok – használt adatkészlet

aes() – esztétika

geom() – geometria. itt sok lehetőséged van. Azt javaslom, nézze meg ezt puska e fogalom sokkal jobb megértéséhez

Lássunk neki!

# import ggplot2 könyvtár könyvtár(ggplot2)

1. Szórásdiagram

p1 <- ggplot(írisz, aes(x = csészelevél.hossz, y = csészelevél.szélesség, szín = faj)) + geom_point() p1
szórványrajz | Programozás R-ben

2. Hisztogram

p2 <- ggplot(írisz, aes(x = szirom. hossz, kitöltés = faj)) + geom_hisztogram(binwidth=0.2, alfa=0.75) p2
Hisztogram | Programozás R-ben

3. Doboztelek

p3 <- ggplot(írisz, aes(x = faj, y = csészelevél.hossz, kitöltés = faj)) + geom_boxplot() p3
Boxplot írisz

4. Barplot

fokozatok <- c('A', 'B', 'C', 'D', 'F') count <- c(8, 26, 44, 15, 7) data_grades <- data.frame(x = osztályzatok , y = számlálás) p4 <- ggplot(data_grades, aes(x = osztályzatok, y = count, fill = osztályzatok)) + geom_col(alpha=0.6) p4
Barplot | Programozás R-ben

5. Sűrűség diagram

p5 <- ggplot(írisz, aes(x = Sepal.Length, fill = Faj)) + geom_density(alpha=0.35) p5
sűrűségű telek | Programozás R-ben

6. Hegedű cselekmény

p6 <- ggplot(írisz, aes(x = faj, y = csészelevél. hossz, kitöltés = faj)) + geom_violin(alfa=0.6) p6
Hegedűs cselekmény

7. Kördiagram

Jegyzet: Ahhoz, hogy kördiagramot készítsünk, a kombinációt kell használnunk geom_bar() és a coord_polar()

szeletek <- c(36448.797, 26288.683, 23596.661, 3028.636, 2605.979, 1895.095) címkék <- c("Ázsia", "Észak-Amerika", "Európa", "Dél-Amerika", "Ázsia"adat - data.frame(értékek = szeletek, csoportok = címkék ) ggplot(data_gdp, aes(x="", y=values, fill=groups)) + geom_bar(stat="identitás", alpha=0.5) + coord_polar(" y", start=0) + theme_void() # ez a sor a háttérrács törlésére szolgál
Kördiagram | Programozás R-ben

8. Vonalrajz

# új adatkészlet létrehozása x <- seq(0, 1000, len=500) y <- log(x + 1) data <- data.frame( x = x, y = y) # line plot ggplot(data, aes (x=x, y=y))+ geom_line()
Vonaldiagram | Programozás R-ben

9. Térképek

## https://www.maths.usyd.edu.au/u/UG/SM/STAT3022/r/current/Misc/data-visualization-2.1.pdf adatok adaptálása <- data.frame(assault = USArrests$ Támadás, állapot = tolower(sornevek(USArrests))) map <- map_data("állam") map_plot <- ggplot(data, aes(fill = támadás)) + geom_map(aes(térkép_azonosító = állapot), térkép = térkép,) + expand_limits(x = térkép$hosszú, y = térkép$szélesség)+ scale_fill_continuous(low = "világoskék", magas = "lazac") map_plot
Térképek

Korrelációs hőtérkép segítségével corrplot

A korrelációs hőtérkép hasznos a több változó közötti korreláció ábrázolására. Ebben a példában a könyvtárat fogjuk használni corrplot korrelációs hőtérkép létrehozásához a Lakásár adatkészleten.

#importing library library(corrplot)
options(repr.plot.width = 10, repr.plot.height = 10) numeric_var <- names(house)[which(sapply(house, is.numeric))] house_cont <- house[numeric_var] korrelációk <- cor( na.omit(ház_kont[,-1])) corrplot(korrelációk, method="négyzet", type='lower', diag=FALSE)
korrelációs diagram

Végjegyzetek

Ebben a cikkben az alapoktól kezdtük, és megnéztük, mik azok a változók, és hogyan rendelhetünk hozzájuk értékeket. Ezután megismerkedtünk az R-ben használt natív adattípusokkal és általános adatstruktúrákkal. Ezután megtanultuk, hogyan lehet ezekből az adatstruktúrákból kivonni a kívánt részeket. Végül megtanultuk, hogyan importálhatunk adatokat, és hogyan használhatunk különböző vezérlőstruktúrákat, például ciklusokat és feltételes utasításokat az R-ben.

Ezután megismerkedtünk az R használatának adatelemzési részével. Megtanultuk, hogyan lehet vámfüggvényeket létrehozni, majd elkezdtük az adatkeretek kezelését. dplyr. Ezután a natív R-t és egy robusztus viz-könyvtárat használó vizualizációkba merültünk bele gglot2. Köszönöm, hogy elolvasta cikkem. Remélem, tetszett.

További cikkeimet itt olvashatod:

Sion | Az Analytics Vidhya szerzője

Referenciák

1. kép: https://www.r-project.org/logo/

Az ebben a cikkben bemutatott médiák nem az Analytics Vidhya tulajdonát képezik, és a Szerző belátása szerint használják azokat.

Forrás: https://www.analyticsvidhya.com/blog/2021/09/programming-in-r-from-variables-to-visualizations/

Időbélyeg:

Még több Analytics Vidhya