install.packages("metaSEM") require("metaSEM") library(readxl) dataset <- read_excel("c:/Users/user/Documents/R/paper6_3/paper6_3 data/masem_data_3_SMPL.xlsx") head(dataset) ## make list of cormatrices (cordat), NA on diagonal nvar <- 6 varnames <- c("RND","CEO","ABS","COM","REL","PER") labels <- list(varnames, varnames) cordat <- list() for (i in 1:nrow(dataset)){ cordat[[i]] <- vec2symMat(as.matrix(dataset[i,3:17]),diag = FALSE) dimnames(cordat[[i]]) <- labels } # put NA on diagonal if variable is missing for (i in 1:length(cordat)){ for (j in 1:nrow(cordat[[i]])){ if (sum(is.na(cordat[[i]][j,]))==nvar-1) {cordat[[i]][j,j] <- NA} }} # put NA on diagonal for variable with least present correlations for (i in 1:length(cordat)){ for (j in 1:nrow(cordat[[i]])){ for (k in 1:nvar){ if (is.na(cordat[[i]][j,k])==TRUE &is.na(cordat[[i]][j,j])!=TRUE &is.na(cordat[[i]][k,k])!=TRUE){ if(sum(is.na(cordat[[i]])[j,])>sum(is.na(cordat[[i]])[k,])) {cordat[[i]][k,k] = NA} if(sum(is.na(cordat[[i]])[j,])<=sum(is.na(cordat[[i]])[k,])) {cordat[[i]][j,j] = NA} }}}} head(cordat) dataset$N #### stage 1 stage1random <- tssem1(Cov=cordat, n=dataset$N, method="REM", RE.type="Diag") summary(stage1random) # returns models via maTryHard() random1_rerun <- rerun(stage1random)