Bevezetés az R-be 2.0 - Feladatgyűjtemény

Adattábla változói

1. feladat. Adattábla változói.
A http://users.atw.hu/rdata/ber2/egyetem.csv szöveges állomány 657 hallgató adatát tartalmazza. Olvassuk be az adatokat egy hallgatok adattáblába! Gondoskodjunk az oszlopok beszédes és magyar elnevezéséről! Hozzunk létre egy új adattáblát, amely csak a lefekves és felkeles oszlopokat tartalmazza! Adjunk az új adattáblához egy dohányzási szokást is tartalmazó faktort, majd távolítsuk el!

Az adatok beolvasása

hallgatok <- read.table("http://users.atw.hu/rdata/ber2/egyetem.csv", 
                        sep=";", header=T, dec=",")
str(hallgatok)
'data.frame':    657 obs. of  6 variables:
 $ hallgato: int  1 2 3 4 5 6 7 8 9 10 ...
 $ Height  : num  67 64 61 61 70 63 61 64 66 65 ...
 $ neme    : Factor w/ 2 levels "female","male": 1 1 1 1 2 1 1 1 1 2 ...
 $ lefekves: num  -2.5 1.5 -1.5 2 0 1 1.5 0.5 -0.5 2.5 ...
 $ felkeles: num  5.5 8 7.5 8.5 9 8.5 7.5 7.5 7 8.5 ...
 $ Drink   : Factor w/ 3 levels "tej","üdítő",..: 3 2 1 3 2 3 3 2 3 1 ...

Oszlopok átnevezése

colnames(hallgatok)[2] <- "magassag"      # Height átnevezése
colnames(hallgatok)[6] <- "kedvenc.ital"  # Drink átnevezése
str(hallgatok)
'data.frame':    657 obs. of  6 variables:
 $ hallgato    : int  1 2 3 4 5 6 7 8 9 10 ...
 $ magassag    : num  67 64 61 61 70 63 61 64 66 65 ...
 $ neme        : Factor w/ 2 levels "female","male": 1 1 1 1 2 1 1 1 1 2 ...
 $ lefekves    : num  -2.5 1.5 -1.5 2 0 1 1.5 0.5 -0.5 2.5 ...
 $ felkeles    : num  5.5 8 7.5 8.5 9 8.5 7.5 7.5 7 8.5 ...
 $ kedvenc.ital: Factor w/ 3 levels "tej","üdítő",..: 3 2 1 3 2 3 3 2 3 1 ...

A hallgatok.2 adattábla létrehozása, amely csak a lefekves és felkeles oszlopokat tartalmazza.

hallgatok.2 <- hallgatok[,c("lefekves", "felkeles")]
str(hallgatok.2)
'data.frame':    657 obs. of  2 variables:
 $ lefekves: num  -2.5 1.5 -1.5 2 0 1 1.5 0.5 -0.5 2.5 ...
 $ felkeles: num  5.5 8 7.5 8.5 9 8.5 7.5 7.5 7 8.5 ...

Új oszlop beszúrása.

Ha minden hallgató dohányzási szokása (1-nem dohányzik, 2-keveset dohányzik, 3-sokat dohányzik) rendelkezésre áll, akkor azt a hallgatok.2 adattáblához így illeszthetjük be:

# fiktív, dohányzási szokás faktor létrehozása, 3 szinttel
dsz <- gl(n=3, k=10, length=657) 
hallgatok.2$dohanyzasi.szokas <- dsz # új oszlop beszúrása
str(hallgatok.2)
'data.frame':    657 obs. of  3 variables:
 $ lefekves         : num  -2.5 1.5 -1.5 2 0 1 1.5 0.5 -0.5 2.5 ...
 $ felkeles         : num  5.5 8 7.5 8.5 9 8.5 7.5 7.5 7 8.5 ...
 $ dohanyzasi.szokas: Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...

Oszlopok sorrendjének megváltoztatása

Az oszlopok sorrendjét az oszlopok indexelésével változtathatjuk meg. Vegyük előre a dohanyzasi.szokas oszlopot!

hallgatok.2 <- hallgatok.2[,c(3,1,2)]
str(hallgatok.2)
'data.frame':    657 obs. of  3 variables:
 $ dohanyzasi.szokas: Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
 $ lefekves         : num  -2.5 1.5 -1.5 2 0 1 1.5 0.5 -0.5 2.5 ...
 $ felkeles         : num  5.5 8 7.5 8.5 9 8.5 7.5 7.5 7 8.5 ...

Távolítsuk el a dohanyzasi.szokas oszlopot (1. verzió)

hallgatok.2 <- hallgatok.2[,2:3] # az 1. oszlop eltávolítása
str(hallgatok.2)
'data.frame':    657 obs. of  2 variables:
 $ lefekves: num  -2.5 1.5 -1.5 2 0 1 1.5 0.5 -0.5 2.5 ...
 $ felkeles: num  5.5 8 7.5 8.5 9 8.5 7.5 7.5 7 8.5 ...

Távolítsuk el a dohanyzasi.szokas oszlopot (2. verzió)

hallgatok.2$dohanyzasi.szokas <- dsz # szúrjuk be ismét a dohányzási szokás faktort
hallgatok.2$dohanyzasi.szokas <- NULL # oszlop eltávolítása
str(hallgatok.2)
'data.frame':    657 obs. of  2 variables:
 $ lefekves: num  -2.5 1.5 -1.5 2 0 1 1.5 0.5 -0.5 2.5 ...
 $ felkeles: num  5.5 8 7.5 8.5 9 8.5 7.5 7.5 7 8.5 ...