rm(list = ls()) library(metaSEM) var=c("SUB","DIS","WS","NE","OS") A=create.mxMatrix(c(0,0,".2*a1",".2*a2",0, 0,0,".2*b1",0,0, 0,0,0,".2*c1",".2*c2", 0,0,".2*d1",0,".2*d2", rep(0,5)),ncol=5,nrow=5) S=create.mxMatrix(c(1,".3*ctd",rep(0,3),".3*ctd",1,rep(0,5),".3*ew",rep(0,5),".3*en",rep(0,5),".3*eo"),ncol=5,nrow=5) data<-read.csv("FULL_2L.csv", header = TRUE, quote=",",na.strings="NA") ##there is something wrong with above code: if I put FALSE properly, it will read an extra cope of Row 6 at the very beginning## data1=matrix(c(data[[3]],data[[4]],data[[5]],data[[6]],data[[7]],data[[8]],data[[9]],data[[10]],data[[11]],data[[12]]),ncol=10,byrow=FALSE) data2=lapply(split(data1,1:76), function(x){mat=matrix(1,ncol=5,nrow=5); mat[upper.tri(mat,diag=FALSE)]<-x; mat[lower.tri(mat)]<-t(mat)[lower.tri(mat)]; mat}) data2=lapply(data2,function(x,var.names){dimnames(x)=list(var.names,var.names);x},var.names=var) data3=list(data=data2,n=data[[2]]) random1=tssem1(Cov=data3$data,n=data3$n,method="REM",acov="weighted", RE.type="Diag") random1=rerun(random1) summary(random1) random2.0=tssem2(random1,Amatrix=A,Smatrix=S,diag.constraints=FALSE,intervals="z") random2.0=rerun(random2.0) summary(random2.0)