1. feladat. Adattábla változói.
Ahttp://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!
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...