## Not run:
# #############################################################################
# # EXAMPLE 1: Standardized variables in list of multiply imputed datasets
# #############################################################################
#
# data(data.ma02)
# datlist <- data.ma02
#
# #--- object of class 'datlist'
# datlist <- datlist_create( datlist )
#
# # mean and SD of variable hisei
# ma.wtd.meanNA(data=datlist, weights = datlist[[1]]$studwgt , vars = "hisei" )
# mean( unlist( lapply( datlist , FUN = function(data){
# stats::weighted.mean( data$hisei , data$studwgt ) } ) ) )
# ma.wtd.sdNA(data=datlist, weights = datlist[[1]]$studwgt , vars = "hisei" )
# mean( unlist( lapply( datlist , FUN = function(data){
# sqrt( Hmisc::wtd.var( data$hisei , data$studwgt ) ) } ) ) )
#
# # standardize variable hisei to M=100 and SD=15
# datlist1a <- scale_datlist( datlist=datlist, orig_var="hisei", trafo_var="hisei100",
# weights = datlist[[1]]$studwgt , M=100, SD=15 )
#
# # check mean and SD
# ma.wtd.meanNA(data=datlist1a, weights = datlist[[1]]$studwgt , vars = "hisei100" )
# ma.wtd.sdNA(data=datlist1a, weights = datlist[[1]]$studwgt , vars = "hisei100" )
#
# #--- do standardization for unweighted sample with books <= 3
# # -> define a weighting variable at first
# datlist0 <- mitools::imputationList( datlist )
# datlist2a <- within.imputationList( datlist0 , {
# # define weighting variable
# wgt_books <- 1 * ( books <= 3 )
# } )
#
# # standardize variable hisei to M=100 and SD=15 with respect to weighting variable
# datlist2b <- scale_datlist( datlist=datlist2a, orig_var="hisei", trafo_var="hisei100",
# weights = "wgt_books" , M=100, SD=15 )
#
# # check mean and SD (groupwise)
# ma.wtd.meanNA(data=datlist1a, weights = datlist[[1]]$studwgt , vars = "hisei100" )
# ma.wtd.sdNA(data=datlist1a, weights = datlist[[1]]$studwgt , vars = "hisei100" )
#
# #--- transformation for a single dataset
# dat0 <- datlist[[1]]
# dat0a <- scale_datlist( datlist=dat0 , orig_var="hisei" , trafo_var="hisei100" ,
# weights = dat0$studwgt , M=100, SD=15 )
# stats::weighted.mean( dat0a[,"hisei"] , w = dat0a$studwgt )
# stats::weighted.mean( dat0a[,"hisei100"] , w = dat0a$studwgt )
# sqrt( Hmisc::wtd.var( dat0a[,"hisei100"] , weights = dat0a$studwgt ) )
#
# #--- Standardizations for objects of class imputationList
# datlist2 <- mitools::imputationList(datlist) # object class conversion
# datlist2a <- scale_datlist( datlist=datlist2 , orig_var="hisei" , trafo_var="hisei100" ,
# weights = datlist[[1]]$studwgt , M=100, SD=15 )
#
# #############################################################################
# # EXAMPLE 2: Standardized variables in list of nested multiply imputed datasets
# #############################################################################
#
# # nested multiply imputed dataset in BIFIEsurvey package
# data(data.timss4, package="BIFIEsurvey")
# datlist <- data.timss4
# wgt <- datlist[[1]][[1]]$TOTWGT
#
# # class nested.datlist
# imp1 <- nested.datlist_create( datlist )
# # class NestedImputationList
# imp2 <- NestedImputationList( datlist )
#
# # standardize variable scsci
# imp1a <- scale_datlist( datlist=imp1, orig_var="scsci", trafo_var="zscsci", weights =wgt)
# # check descriptives
# ma.wtd.meanNA( imp1a , weights=wgt , vars = c("scsci" , "zscsci" ) )
# ma.wtd.sdNA( imp1a , weights=wgt , vars = c("scsci" , "zscsci" ) )
#
# #############################################################################
# # EXAMPLE 3: Standardization of variables for imputed data in mice package
# #############################################################################
#
# data(nhanes, package="mice")
# set.seed(76)
#
# #--- impute nhanes data
# imp <- mice::mice(nhanes)
# #--- convert into datlist
# datlist <- mids2datlist(imp)
# #--- scale datlist (all variables)
# vars <- colnames(nhanes)
# sdatlist <- scale_datlist(datlist, orig_var = vars, trafo_var = paste0("z",vars) )
# #--- reconvert to mids object
# imp2 <- datlist2mids(sdatlist)
# #*** compare descriptive statistics of objects
# round( mean0( mice::complete(imp, action=1) ) , 2 )
# round( mean0( mice::complete(imp2, action=1) ) , 2 )
# ## End(Not run)
Run the code above in your browser using DataLab