Lýsandi gildi
Samanteknar upplýsingar
psych::describe(df) # Gefur öll helstu gildi fyrir allar breytur
vars n mean sd median trimmed mad min
verð 1 500 58623.11 13006.74 58000.00 58204.60 12602.10 23900.0
tegund* 2 500 2.39 1.37 3.00 2.37 1.48 1.0
sveitarfélag* 3 500 3.39 1.59 3.50 3.48 2.22 1.0
stærð 4 500 200.13 56.52 195.65 198.38 47.29 56.6
herbergi 5 500 4.09 1.40 4.00 4.04 1.48 0.0
aldur 6 500 35.27 20.10 34.00 33.89 19.27 1.0
max range skew kurtosis se
verð 96500.0 72600.0 0.26 0.09 581.68
tegund* 4.0 3.0 0.09 -1.83 0.06
sveitarfélag* 5.0 4.0 -0.30 -1.51 0.07
stærð 439.9 383.3 0.44 1.21 2.53
herbergi 10.0 10.0 0.57 1.03 0.06
aldur 117.0 116.0 0.85 1.47 0.90
summary(df) # Gefur svipaðar upplýsingar og describe, taktu þó eftir að undir flokkabreytunni fæst talning fyrir hvert gildi (n)
verð tegund sveitarfélag stærð
Min. :23900 Einbýlishús :233 Garðabær : 94 Min. : 56.6
1st Qu.:49900 Fjölbýlishús: 14 Hafnarfjörður: 80 1st Qu.:167.3
Median :58000 Parhús : 77 Kópavogur : 76 Median :195.7
Mean :58623 Raðhús :176 Mosfellsbær : 38 Mean :200.1
3rd Qu.:66550 Reykjavík :212 3rd Qu.:232.3
Max. :96500 Max. :439.9
herbergi aldur
Min. : 0.000 Min. : 1.00
1st Qu.: 3.000 1st Qu.: 21.00
Median : 4.000 Median : 34.00
Mean : 4.094 Mean : 35.27
3rd Qu.: 5.000 3rd Qu.: 46.00
Max. :10.000 Max. :117.00
str(df) er gagnleg til að fá upplýsingar um strúktúr gagna. Skipunin gefur okkur upplýsingar um þær breytur sem eru til staðar, hvernig þær eru skilgreindar (samfelldar, flokka, o.s.frv.) ásamt nokkrum dæmum um þau gildi sem breytan tekur.
'data.frame': 500 obs. of 6 variables:
$ verð : int 49000 67600 55000 94187 50500 42000 64000 94550 68000 60000 ...
$ tegund : Factor w/ 4 levels "Einbýlishús",..: 1 4 3 1 1 4 1 1 1 1 ...
$ sveitarfélag: Factor w/ 5 levels "Garðabær","Hafnarfjörður",..: 1 2 5 5 3 5 2 5 2 1 ...
$ stærð : num 189 238 180 244 137 ...
$ herbergi : int 4 5 5 7 4 3 5 5 4 6 ...
$ aldur : int 44 9 58 48 62 30 34 37 17 54 ...
length(df) # Fyrir (df) fengist fjöldi breyta, fyrir (df$breyta) fengist fjöldi raða (n)
Tegund stika
X(hlutur)
mean() gefur meðaltal
median() gefur miðgildi
sd() gefur staðalfrávik
range() gefur lægsta og hæsta gildi
dim() gefur dimensions fyrir gagnasafn, fyrri tala gefur fjölda í úrtaki, seinni tala gefur fjölda breyta
df þá fæst stikinn fyrir allar breytur gagnasafnsins
df$breyta þá fæst stikinn fyrir þá tilteknu breytu
Gildi einnar breytu út frá gildum annarrar.
tapply() skipunin er gagnleg til að fá tiltekna mælingu á einni breytu skipt eftir gildum annarrar.
Hér er ég að biðja um mean fyrir breyta1 eftir gildum breyta2 .
tapply (df$ breyta1, df$ breyta2, mean)
mean gefur meðaltal
sd gefur staðalfrávik
median gefur miðgildi
range gefur lægsta og hæsta gildi
Dæmi: Hér bið ég um að fá meðalverð fyrir hvert sveitarfélag.
tapply (df$ verð, df$ sveitarfélag, mean)
Garðabær Hafnarfjörður Kópavogur Mosfellsbær Reykjavík
60687.77 54935.94 60412.50 53436.84 59387.17
Fjöldi
sum() skipunina má nota á marga vegu til að fá ólíkar upplýsingar. Hér að neðan eru nokkur dæmi:
Hversu margar eignir eru í sveitarfélaginu “Garðabær”
sum (df$ sveitarfélag == "Garðabær" )
Hversu margar eignir eru 100 fermetrar?
Hversu margar eignir eru undir 100fm?
Hversu margar eignir eru 100 fermetrar eða stærri?
Skipunin table() getur einnig verið gagnleg þegar unnið er með flokkabreytur.
Hér fæ ég einfalda talningu á fjölda innan hvers hóps sem flokkabreytan tekur til.
Dæmi: bið um fjölda eigna í hverju sveitarfélagi
Garðabær Hafnarfjörður Kópavogur Mosfellsbær Reykjavík
94 80 76 38 212
table (df$ flokkabreyta1, df$ flokkabreyta2)
Hér fengist krosstafla sem gæfi fjölda byggt á báðum flokkabreytum.
table (df$ sveitarfélag, df$ tegund)
Einbýlishús Fjölbýlishús Parhús Raðhús
Garðabær 46 14 7 27
Hafnarfjörður 49 0 15 16
Kópavogur 36 0 21 19
Mosfellsbær 15 0 8 15
Reykjavík 87 0 26 99
Hlutföll
Hlutföll heildar
Skipunin prop.table() er gagnleg þegar við viljum hlutföll á flokkabreytum í stað einfaldrar talningar.
prop.table (table (df$ flokkabreyta1))
Hér fást hlutföll hvers hóps sem flokkabreytan tekur til.
Dæmi: Bið um hlutfallslega skiptingu eigna eftir sveitarfélögum
prop.table (table (df$ sveitarfélag))
Garðabær Hafnarfjörður Kópavogur Mosfellsbær Reykjavík
0.188 0.160 0.152 0.076 0.424
Hlutföll tveggja breyta
prop.table (table (df$ flokkabreyta1, df$ flokkabreyta2))
Hér fæst hlutfall heildar sem flokkast undir báðar breytur.
prop.table (table (df$ sveitarfélag, df$ tegund))
Einbýlishús Fjölbýlishús Parhús Raðhús
Garðabær 0.092 0.028 0.014 0.054
Hafnarfjörður 0.098 0.000 0.030 0.032
Kópavogur 0.072 0.000 0.042 0.038
Mosfellsbær 0.030 0.000 0.016 0.030
Reykjavík 0.174 0.000 0.052 0.198
Hér sjáum við að 17,4% eigna eru bæði einbýlishús og staðsett í Reykjavík.
Hlutföll milli breyta
prop.table (table (df$ flokkabreyta1, df$ flokkabreyta2), 1 )
Hér fæst hlutfallsleg skipting á flokkabreytu 2 út frá flokkabreytu 1.
prop.table (table (df$ sveitarfélag, df$ tegund), 1 )
Einbýlishús Fjölbýlishús Parhús Raðhús
Garðabær 0.48936170 0.14893617 0.07446809 0.28723404
Hafnarfjörður 0.61250000 0.00000000 0.18750000 0.20000000
Kópavogur 0.47368421 0.00000000 0.27631579 0.25000000
Mosfellsbær 0.39473684 0.00000000 0.21052632 0.39473684
Reykjavík 0.41037736 0.00000000 0.12264151 0.46698113
Hér sést að af öllum eignum í Garðabæ eru 48,9% þeirra einbýlishús.
prop.table (table (df$ breyta1, df$ breyta2),2 )
Hér er þessu snúið við og við fáum hlutfallslega skiptingu flokkabreytar 1 út frá flokkabreytu 2.
prop.table (table (df$ sveitarfélag, df$ tegund), 2 )
Einbýlishús Fjölbýlishús Parhús Raðhús
Garðabær 0.19742489 1.00000000 0.09090909 0.15340909
Hafnarfjörður 0.21030043 0.00000000 0.19480519 0.09090909
Kópavogur 0.15450644 0.00000000 0.27272727 0.10795455
Mosfellsbær 0.06437768 0.00000000 0.10389610 0.08522727
Reykjavík 0.37339056 0.00000000 0.33766234 0.56250000
Hér fáum við að af öllum einbýlishúsum, þá eru 19,7% þeirra í Garðabæ.
Fylgni
Skipunin cor() gefur okkur fylgni á milli breyta, eðlilega þurfa breyturnar því að vera mældar á samfelldum kvarða.
Ef gagnasafnið inniheldur aðeins samfelldar breytur má setja allt gagnasafnið innan cor() .
Gagnasafnið okkar inniheldur flokkabreytuna sveitarfélag og tegund , við þyrftum því að tilgreina sérstaklega þær breytur sem við viljum fá fylgni fyrir.
cor (df[c ("verð" ,"stærð" ,"herbergi" ,"aldur" )])
verð stærð herbergi aldur
verð 1.0000000 0.6642176 0.3314536 -0.1910744
stærð 0.6642176 1.0000000 0.6391926 -0.1165756
herbergi 0.3314536 0.6391926 1.0000000 0.1631419
aldur -0.1910744 -0.1165756 0.1631419 1.0000000
passa sig : Ef þú ert með missing gildi á breytunni gætir þú fengið villu, þá dugir að bæta við use=“complete.obs”
Með því að bæta as.dist() við þá fæst einfölduð tafla:
as.dist (cor (df[c ("verð" ,"stærð" ,"herbergi" ,"aldur" )]))
verð stærð herbergi
stærð 0.6642176
herbergi 0.3314536 0.6391926
aldur -0.1910744 -0.1165756 0.1631419
Ég gæti einnig beðið beint um fylgnifylki fyrir allar breytur sem eru ekki factor, t.d. með:
cor (df [sapply (df, function (x) ! is.factor (x))])
verð stærð herbergi aldur
verð 1.0000000 0.6642176 0.3314536 -0.1910744
stærð 0.6642176 1.0000000 0.6391926 -0.1165756
herbergi 0.3314536 0.6391926 1.0000000 0.1631419
aldur -0.1910744 -0.1165756 0.1631419 1.0000000
Síuð gögn
subset() skipunin er einnig gagnleg til að sía út þær breytur eða þau gildi á breytum sem þú vilt fá upplýsingar um.
Hér vil ég sía gögnin til að innihalda aðeins eignir sem eru staðsettar í Garðabæ:
#Bý til hlut sem inniheldur aðeins eignir í Garðabæ
Garðabær <- subset (df, sveitarfélag == "Garðabær" )
Næst gæti ég nýtt mér þær skipanir sem fjallað er um hér að ofan til að biðja um ólíkar upplýsingar fyrir eignir í Garðabæ.
Dæmi: Nýti mér describe úr psych pakkanum til að lýsa gagnasafninu fyrir mér
psych:: describe (Garðabær)
vars n mean sd median trimmed mad min
verð 1 94 60687.77 14064.18 60000.0 60168.42 12231.45 33000.0
tegund* 2 94 2.16 1.31 2.0 2.08 1.48 1.0
sveitarfélag* 3 94 1.00 0.00 1.0 1.00 0.00 1.0
stærð 4 94 188.37 53.78 190.0 187.05 42.25 73.2
herbergi 5 94 3.50 1.18 4.0 3.43 1.48 1.0
aldur 6 94 28.09 17.31 31.5 28.38 21.50 1.0
max range skew kurtosis se
verð 96500.0 63500 0.34 -0.27 1450.61
tegund* 4.0 3 0.48 -1.55 0.13
sveitarfélag* 1.0 0 NaN NaN 0.00
stærð 330.2 257 0.17 0.05 5.55
herbergi 8.0 7 0.56 1.25 0.12
aldur 58.0 57 -0.20 -1.31 1.79
Pípur
Pípur fást úr pakkanum dplyr og geta verið mjög gagnlegar til að taka saman upplýsingar í einum kóðabút. (Það er, í staðin fyrir að þurfa að taka þetta í mörgum skrefum.)
Hér bið ég um meðaltal (mean ) verðs (verd ), skipt niður eftir sveitarfélagi (sveitarfelag ) úr gagnasafninu (df ).
df %>%
group_by (sveitarfélag) %>%
summarise (mean (verð))
# A tibble: 5 × 2
sveitarfélag `mean(verð)`
<fct> <dbl>
1 Garðabær 60688.
2 Hafnarfjörður 54936.
3 Kópavogur 60412.
4 Mosfellsbær 53437.
5 Reykjavík 59387.
Eins og gefur að skilja býður þetta upp á ótal möguleika. Hér bæti ég við fleiri mælingum fyrir verð , en ég gæti einnig bætt við sömu mælingum fyrir aðrar breytur.
df %>%
group_by (sveitarfélag) %>%
summarise (mean (verð), sd (verð), min (verð), max (verð))
# A tibble: 5 × 5
sveitarfélag `mean(verð)` `sd(verð)` `min(verð)` `max(verð)`
<fct> <dbl> <dbl> <int> <int>
1 Garðabær 60688. 14064. 33000 96500
2 Hafnarfjörður 54936. 11787. 23900 85000
3 Kópavogur 60412. 11736. 32000 92000
4 Mosfellsbær 53437. 12846. 24900 82500
5 Reykjavík 59387. 13014. 29000 94550