old_code/testing_splitting.R

### Pakete
devtools::install_github("b-becker/eatGADS")

library(devtools)
library(eatGADS)

library(data.table)


#### Testing data
load(file = "p:/R/GADS-RPaket/gads53.RData")
length(unique(gads53$idsch))
length(unique(gads53$idteach))
length(unique(gads53$idstud))
length(unique(gads53$kb))


### prepare data
dim(gads53)
gads53 <- prepDat(gads53, IDs = c("idsch", "idteach", "idstud"))

#### Structure guessing
guessVars(gads53, ID = "idsch")
guessVars(gads53, ID = "idteach")
guessVars(gads53, ID = "idstud")

studDat <- guessVars(gads53, ID = "idstud")
leftOvers <- names(gads53)[!names(gads53) %in% studDat]
View(gads53[, leftOvers, with = F])
# mh, weilweise zu viele Variablen? oder imputiert


# complete
guesstruc <- guessStructure(gads53, IDvars = c("idsch", "idteach", "idstud"))

##### Splitting
GADSlist <- splitGADS(gads53, L1_Vars = guesstruc$leftVars, L1_ID = NULL,
                      L2_Vars = guesstruc$idstud, L2_ID = "idstud",
                      L3_Vars = guesstruc$idteach, L3_ID = "idteach",
                      L4_Vars = guesstruc$idsch, L4_ID = "idsch")

length(GADSlist)

#größe vergleichen (1/3, bisher eher konservatives splitting)
object.size(gads53)
object.size(GADSlist)


#### Extracting
#####################################################################
GADSnames(GADSlist)

oldNames <- c("idstud", "idteach", "idclass", "idsch")
newNames <- c("ID_stud", "ID_teach", "ID_class", "ID_sch")
setNamesGADS(GADSlist = GADSlist, oldNames = oldNames, newNames = newNames)

## extract data in long format
test <- getGADS_long(GADSlist = GADSlist, varVec = GADSnames(GADSlist, asVector = T))
test <- getGADS_long(GADSlist = GADSlist, varVec = GADSnames(GADSlist, asVector = T)[c(1:5, 300)])

## test ob Form und Werte erhalten bleiben
dim(test)
all.equal(gads53, test)

## Bsp. für Hilfe
####################################################################
studQuest <- data.table(ID_stud = 1:50,
                        HISEI = rnorm(50, 50, 10),
                        extr = rnorm(50, 7, 2))
studPVs <- data.table(ID_stud = rep(1:50, 5),
                      PV_comp = rnorm(250, 0, 1.5))
longDat <- merge(studPVs, studQuest, by = "ID_stud")

guessStructure(longDat, IDvars = "ID_stud")
splitGADS(longDat, L1_Vars = c("PV_comp"), L2_Vars = c("HISEI", "extr"), L2_ID = "ID_stud")
b-becker/eatGADS documentation built on May 24, 2019, 8:47 p.m.