Participant 023 (1.12.15) -------------------------- -------------------------- rm(list = ls()) ## Read in data dat=read.csv('pre023.csv') ## Designate "999" as missing dat[dat[,]==999] <- NA ## Load Psych package library(psych) ## Run fa fa(dat[,c(13:14,18:23,24:27)],nfactors=3,rotate='oblimin',fm='ml') ## Remove Irritable fa(dat[,c(13:14,18:20,22,23,24:27)],nfactors=3,rotate='oblimin',fm='ml') ## Save as FA object efa=fa(dat[,c(13:14,18:20,22,23,24:27)],nfactors=3,rotate='oblimin',fm='ml') ## Create a matrix of loadings and then factor score raw data, weighted by loadings load=efa$loadings ## Remove factor loadings smaller than absolute value of .30 load[load[,]<.3 & load[,]>-.29]<-0 ## Create pattern matrix for LY in LISREL library(car) pat=recode(load,'0=0;else=1') write.table(pat,'pat.txt',row.names=F,col.names=F) ## Create subset datlat=dat[,c(13:14,18:20,22,23,24:27)] ## Convert NAs to -999s datlat[is.na(datlat[,])]<- -999 ## Export file for CFA write.table(datlat,'lat.txt',row.names=F,col.names=F) ## Preparing for Negative Outcomes and Avoiding Activities removed via CFA datlat2=dat[,c(13:14,18:20,22,23,26,27)] ## Read in CFA loadings cfaload=read.table('loads.txt') ## Convert loadings to matrix cfamat=as.matrix(cfaload[,2:4]) ## Generate Factor Scores fs=factor.scores(datlat2,cfamat,method='components') ts=as.data.frame(fs$scores) ## Create empty data frame "lag" lag=data.frame(lagf1=numeric(length(ts[,1])),lagf2=numeric(length(ts[,1])),lagf3=numeric(length(ts[,1]))) ## Lag factors lagpad <- function(x, k) { c(rep(NA, k), x)[1 : length(x)] } lag[,1]=lagpad(ts[,1]) lag[,2]=lagpad(ts[,2]) lag[,3]=lagpad(ts[,3]) lag[,4]=ts[,1] lag[,5]=ts[,2] lag[,6]=ts[,3] colnames(lag) <- c("lagf1","lagf2","lagf3","f1","f2","f3") lag[is.na(lag[,])]<- -999 ## Export file for DFA write.table(lag,'lag.dat',row.names=F,col.names=F)