1. feladat. Szélesből hosszú átalakítás.
Három személy 3 napos tréningen vesz részt, amelynek része egy speciális IQ teszt és kreativitás teszt kitöltése a tréning minden napján. Az adatokat a lenti táblázatnak megfelelően rögzítsük rövid formátumban. Alakítsuk át az adattáblát hosszú formátumuvá!
Személy | 1.nap, IQ | 1.nap, KREAT | 2.nap, IQ | 2.nap, KREAT | 3.nap, IQ | 3.nap, KREAT |
---|---|---|---|---|---|---|
1 | 8 | 12 | 10 | 8 | 13 | 6 |
2 | 12 | 10 | 12 | 9 | 7 | 12 |
3 | 9 | 7 | 12 | 10 | 12 | 8 |
szemely <- 1:3
nap.1_IQ <- c(8,12,9)
nap.1_KREAT <- c(12,10,7)
nap.2_IQ <- c(10,12,12)
nap.2_KREAT <- c(8,9,10)
nap.3_IQ <- c(13,7,12)
nap.3_KREAT <- c(6,12,8)
(d <- data.frame(szemely, nap.1_IQ, nap.1_KREAT, nap.2_IQ, nap.2_KREAT, nap.3_IQ, nap.3_KREAT))
szemely nap.1_IQ nap.1_KREAT nap.2_IQ nap.2_KREAT nap.3_IQ nap.3_KREAT
1 1 8 12 10 8 13 6
2 2 12 10 12 9 7 12
3 3 9 7 12 10 12 8
library(reshape2)
d.2 <- melt(data = d, id.vars="szemely",
measure.vars=c("nap.1_IQ", "nap.1_KREAT", "nap.2_IQ", "nap.2_KREAT", "nap.3_IQ", "nap.3_KREAT"),
variable.name="csoport", value.name="eredmeny")
d.2
szemely csoport eredmeny
1 1 nap.1_IQ 8
2 2 nap.1_IQ 12
3 3 nap.1_IQ 9
4 1 nap.1_KREAT 12
5 2 nap.1_KREAT 10
6 3 nap.1_KREAT 7
7 1 nap.2_IQ 10
8 2 nap.2_IQ 12
9 3 nap.2_IQ 12
10 1 nap.2_KREAT 8
11 2 nap.2_KREAT 9
12 3 nap.2_KREAT 10
13 1 nap.3_IQ 13
14 2 nap.3_IQ 7
15 3 nap.3_IQ 12
16 1 nap.3_KREAT 6
17 2 nap.3_KREAT 12
18 3 nap.3_KREAT 8
d.2$trening <- sapply(strsplit(x = as.character(d.2$csoport), split = "_", fixed = T),
function(x) x[1])
d.2$teszt <- sapply(strsplit(x = as.character(d.2$csoport), split = "_", fixed = T),
function(x) x[2])
d.2
szemely csoport eredmeny trening teszt
1 1 nap.1_IQ 8 nap.1 IQ
2 2 nap.1_IQ 12 nap.1 IQ
3 3 nap.1_IQ 9 nap.1 IQ
4 1 nap.1_KREAT 12 nap.1 KREAT
5 2 nap.1_KREAT 10 nap.1 KREAT
6 3 nap.1_KREAT 7 nap.1 KREAT
7 1 nap.2_IQ 10 nap.2 IQ
8 2 nap.2_IQ 12 nap.2 IQ
9 3 nap.2_IQ 12 nap.2 IQ
10 1 nap.2_KREAT 8 nap.2 KREAT
11 2 nap.2_KREAT 9 nap.2 KREAT
12 3 nap.2_KREAT 10 nap.2 KREAT
13 1 nap.3_IQ 13 nap.3 IQ
14 2 nap.3_IQ 7 nap.3 IQ
15 3 nap.3_IQ 12 nap.3 IQ
16 1 nap.3_KREAT 6 nap.3 KREAT
17 2 nap.3_KREAT 12 nap.3 KREAT
18 3 nap.3_KREAT 8 nap.3 KREAT
2. feladat. Hosszúból széles átalakítás.
Három személy 3 napos tréningen vesz részt, amelynek része egy speciális IQ teszt és kreativitás teszt kitöltése a tréning minden napján. Az adatokat a lenti táblázatnak megfelelően rögzítsük hosszú formátumban. Alakítsuk át az adattáblát széles formátumuvá!
Személy | Tréning | Teszt | Eredmény |
---|---|---|---|
1 | 1.nap | IQ | 8 |
1 | 1.nap | KREAT | 9 |
2 | 1.nap | IQ | 12 |
2 | 1.nap | KREAT | 5 |
3 | 1.nap | IQ | 9 |
3 | 1.nap | KREAT | 11 |
1 | 2.nap | IQ | 11 |
1 | 2.nap | KREAT | 12 |
2 | 2.nap | IQ | 11 |
2 | 2.nap | KREAT | 9 |
3 | 2.nap | IQ | 11 |
3 | 2.nap | KREAT | 10 |
1 | 3.nap | IQ | 10 |
1 | 3.nap | KREAT | 11 |
2 | 3.nap | IQ | 9 |
2 | 3.nap | KREAT | 11 |
3 | 3.nap | IQ | 7 |
3 | 3.nap | KREAT | 12 |
szemely <- rep(1:3, each = 2, times=3)
trening <- gl(n = 3, k = 6, labels=c("nap.1", "nap.2", "nap.3"))
teszt <- gl(n=2, k=1, length = 18, labels=c("IQ", "KREAT"))
eredmeny <- c(8, 9, 12, 5, 9, 11, 11, 12, 11, 9, 11, 10, 10, 11, 9, 11, 7, 12)
(d <- data.frame(szemely, trening, teszt, eredmeny))
szemely trening teszt eredmeny
1 1 nap.1 IQ 8
2 1 nap.1 KREAT 9
3 2 nap.1 IQ 12
4 2 nap.1 KREAT 5
5 3 nap.1 IQ 9
6 3 nap.1 KREAT 11
7 1 nap.2 IQ 11
8 1 nap.2 KREAT 12
9 2 nap.2 IQ 11
10 2 nap.2 KREAT 9
11 3 nap.2 IQ 11
12 3 nap.2 KREAT 10
13 1 nap.3 IQ 10
14 1 nap.3 KREAT 11
15 2 nap.3 IQ 9
16 2 nap.3 KREAT 11
17 3 nap.3 IQ 7
18 3 nap.3 KREAT 12
library(reshape2)
dcast(data = d, formula = szemely ~ trening + teszt, value.var = "eredmeny")
szemely nap.1_IQ nap.1_KREAT nap.2_IQ nap.2_KREAT nap.3_IQ nap.3_KREAT
1 1 8 9 11 12 10 11
2 2 12 5 11 9 9 11
3 3 9 11 11 10 7 12