Toto cvičenie súvisí s dátovou množinou College, ktorá je v súbore College.csv. Obsahuje dáta z 777 rozličných univerzít a vysokých škôl v USA. Tieto premenné sú:
read.csv() na načítanie dátovej množiny do R. Zavolaj načítané dáta college.
Buď si istý, že máš správny priečinok na načítanie dát.
college = read.csv("College.csv")
fix(). Mal by si si všimnúť, že prvý stĺpec je len meno každej univerzity. V R nechceme spracovávať tieto dáta. Avšak, tie môžu byť neskôr užitočné.
Vyskúšaj nasledovné príkazy:
college[1, ]
rownames(college) = college[,1]
fix(college)
college[1,]
Mal by si už vieť aj stĺpec s názvom row.names,s názvami všetkých zaznamenaných univerzít v dátach.
Toto znamená, že R pomenúva každý riadok podľa vhodnej univerzity.
R nebude vykonávať kalkulácie nad názvami riadkov.
Avšak, stále budeme potrebovať odstrániť prvý stĺpec v dátach, kde sú mená uložené.
Vyskúšaj:
college = college [, -1]
fix(college)
college[1, ]
Teraz by si už mal vydieť, že prvé dáta v sĺpci sú Private. Maj na pamäti to, že ďalší stĺpec označený ako row.names teraz sa zobrazí pred stĺpcom Private. Avšak toto nie sú stĺpcové dáta, ale skôr označenia ktoré R dáva každému riadku.
summary() na vyprodukovanie číselného zhrnutia premenných v danej dátovej množine.
summary(college)
pairs() na vyprodukovanie scatterplot matice prvých desať stĺpcov alebo premenných v danej dátovej množine.
Zavolaj potom prvých desať stĺpcov matice A použitím A[, 1:10]
pairs(college[ , 1:10 ], col=4)
plot() na vyprodukovanie vedľa seba boxplots premenných Outstate verzus Private.
attach(college)
plot(Private, Outstate, col=5)
Elite , z binárnej Top10perc premennej.
Budeme rozdeľovať univerzity do dvoch skupín, podľa toho či bolo rozloženie študentov prichádzajúcich z top 10% stredných škôl prevýši 50%.
Použi funkciu summary() na to, aby si videl, aké univerzity sú. Teraz použi funkciu plot() na vyprodukovanie vedľa seba boxplots z premenných Outstate verzus Elite.
Elite = rep("No", nrow(college))
Elite[1:5]
Elite[Top10perc > 50] = "Yes"
Elite[1:5]
Elite = as.factor(Elite)
Elite[1:5]
college = data.frame(college, Elite)
college[1,]
summary(Elite)
plot(Outstate, Elite, col=3)
hist() na vyprodukovanie nejakých histogramov s odlišnými číslami pre niekoľko kvantitatívnych premenných. Môžeš nájisť príkaz par(mfrow=c(2,2)), ktorý ti bude užitočný: rozdelí to okno s výpisom do štyroch oblastí, tak aby štyri grafy mohli byť vykreslené/urobené zároveň. Modifikácia argumentov v tejto funkcii rozdelí obrazovku odlišným spôsobom.
par(mfrow=c(2,2))
hist(Apps, col=8, breaks=30)
hist(perc.alumni, col=3)
hist(PhD, col=4)
hist(Personal, col=5)
hist(S.F.Ratio, col=6, breaks=20)
hist(Expend, breaks = 30, col=2)
plot(Outstate, Grad.Rate, col=2)
Vysoké školné (outstate - tých z iných krajín) koreluje s vysokou mierou skončenia školy úspešne.
plot(Accept / Apps, S.F.Ratio, col = 3)
Vysoké školy, ktoré zoberú tak ľahko kohokoľvek majú aj malé študent/fakulty pomer.
plot(Private, Top10perc, col = 5, xlab="privátne školy", ylab="počet top najlepších 10% zo stredných škôl")
plot(Private, Top25perc, col = 5, xlab="privátne školy", ,
ylab="počet top najlepších 25% zo stredných škôl")
Na privátne školy chodia najčastejšie tí najlepší zo stredných škôl.
plot(Private, perc.alumni, col = 7, xlab="privátne školy", ,
ylab="Percento alumni, ktorý sponzorujú školu")
Privátne školy viac sponzorujú alumni členovia.
plot(Top10perc, Grad.Rate, col=2)
Univerzity s väčšinou študentov z horných top 10% stredných škol, nemusia mať najvyšíe temto absolvovania stupňa. Niektorý prekročili štandardnú dĺžku štúdia.
Toto cvičenie súvisí s dátovou množinou Auto. Ujisti sa, že si odstránil chýbajúce hodnoty z dát.
Auto = read.csv("Auto.csv", header=TRUE, na.string="?")
dim(Auto)
Auto = na.omit(Auto)
dim(Auto)
summary(Auto)
Auto[1, ]
names(Auto)
Riešenie: kvantitatívne
Cylinders môže byť aj kvalitatívny aj kvantitatívny.
sapply(Auto[, 1:7], range)
Priemery sú nasledovné:
sapply (Auto[, 1:7], mean)
Štandardné odchýlky sú nasledovné:
sapply (Auto[ , 1:7], sd)
dim(Auto)
noveAuto = Auto[-(10:85), ]
noveAuto[9, ] == Auto[9, ]
noveAuto[10, ] == Auto[86, ]
dim(noveAuto)
sapply (noveAuto[ , 1:7], range)
sapply (noveAuto[ , 1:7], mean)
sapply (noveAuto[ , 1:7], sd)
pairs(Auto, col=2)
attach(Auto)
plot(mpg, weight, col=3)
Väčšia váha koreluje s nižšou hodnotou mpg.
cylinders = as.factor(cylinders)
plot(cylinders, mpg, col = "red", varwidth=TRUE, xlab = "cylinders", ylab = "mpg")
Čím viac cylindrov, tým menej mpg.
plot(mpg, year, col=4)
Autá budú viac efektívne časom.
pairs(Auto)
Ako môžte vidieť prediktory ukazujú určitú koreláciu s mpg. Predikor name má málo záznamov na meno, tak tento prediktor bude skôr v budúcnosti model skor overfittovať.
Toto cvičenie súvisí s dátovou množinou Boston - údaje o domoch.
library(MASS)
Boston[1,]
Teraz dátová množina obsahuje objekt Boston. Prečítaj si viac informácií o tomto datasete.
?Boston
pairs(Boston, col=2)
Z tohoto obrazku je zrejmé, že:
attach(Boston)
plot(age, crim, col=4)
Čím sú staršie domy, tak tým je viac zločinu v nich.
plot(dis, crim, col=6)
Čím sú domy blišie ku práci, tak tým je tam viac zločinu v nich.
plot(rad, crim, col=7)
Čím je vyšší index prístupnosti k diaľniciam, tak tým je tam viac zločinu v nich.
plot(tax, crim, col=8)
Čím sú vyšši dane, tak tým viac zločinu sa deje.
plot(ptratio, crim, col=5)
Čím je vyšší pomer žiak:učiteľ, tým viac je zločinu.
hist(crim[crim > 1], breaks=25, col=3)
Väčšina miest má nízku zločninosť, ale je tam dlhý chvost: 18 predmeských častí má zločinnosť väčšiu ako 20 a dosahuje až hodnoty nad 80.
hist(tax, breaks=25, col=6)
Tuto možno vydieť veľký rozdiel medzi predmeskými časťami a nízkymi daňami. Najväčšia hodnota je pri daňach v rozmädzí 660-680.
hist(ptratio, breaks=25, col=7)
Zošikmenie ku vyšším pomerom, ale nie až tak vyšoké vo všeobecnosti.
dim( subset( Boston, chas == 1))
Správna odpoveď je: 35.
median(ptratio)
t(subset(Boston, medv == min(medv)))
Na maximum: age, rad, black.
summary(Boston)
dim(subset(Boston, rm > 7))
dim(subset(Boston, rm > 8))
summary(subset(Boston, rm > 8))
summary(Boston)