Confirmatory Factor Analysis"

# Check model syntax 
msyntax <- TRUE
model <- params$model
modelsplit <- unlist(strsplit(model, split="\n"))
modelsplit <- gsub(" ", "", modelsplit, fixed = TRUE)
modelsplit <- modelsplit[modelsplit != ""]
for (i in 1:length(modelsplit)){
  if (grepl("=~",modelsplit[i])==FALSE && grepl("~~",modelsplit[i])==FALSE && grepl("~1",modelsplit[i])==FALSE &&
      grepl("#",modelsplit[i])==FALSE){
    cat("Error: Only model lines containing following lavaan model syntax operators are allowed: =\\~,\\~\\~,\\~1", fill=TRUE)
    msyntax <- FALSE
    break
  } 
}

if (exists("eval5")) eval_code <- eval5 else eval_code <- FALSE
cat("\n# R Packages", fill=TRUE)
cat("To run the code you need to install following R packages:", fill=TRUE)
cat("\\newline ")
cat("R version:", paste0(R.Version()[c("major","minor")], collapse = "."), fill=TRUE)
cat("\\newline ")
cat("Package data.table, version:", paste0(packageVersion("data.table")), fill=TRUE)
cat("\\newline ")
cat("Package corrplot, version:", paste0(packageVersion("corrplot")), fill=TRUE)
cat("\\newline ")
cat("Package knitr, version:", paste0(packageVersion("knitr")), fill=TRUE)
cat("\\newline ")
cat("Package lavaan, version:", paste0(packageVersion("lavaan")), fill=TRUE)
cat("\\newline ")
cat("Package semPlot, version:", paste0(packageVersion("semPlot")), fill=TRUE)
cat("\\newline ")
cat("Package semTools, version:", paste0(packageVersion("semTools")), fill=TRUE)
cat("\\pagebreak")

\pagestyle{empty}

cat("\n# R Code ", fill=TRUE)
cat("\\textcolor{blue}{Instructions ")
cat("\\newline ")  
cat("If not already available, please install R, RStudio and the requiered packages listed on the previous page. Copy the code below, paste it carefully in a new R Script within RStudio. For a seamless copy \\& paste process, open the PDF report in a browser. Change the path to your data in the line} ")
cat("`filepath <- ...` ") 
cat("\\textcolor{blue}{For Windows users, avoid using paths containing spaces. Run the code. Explore the results (numerical results in the Console, plots in the Plots tab). }")

```{whites, eval=FALSE, echo = eval_code}

Import required libraries

suppressPackageStartupMessages(library(data.table)) suppressPackageStartupMessages(library(knitr)) suppressPackageStartupMessages(library(lavaan)) suppressPackageStartupMessages(library(semPlot)) suppressPackageStartupMessages(library(semTools)) suppressPackageStartupMessages(library(corrplot))

```r
cat("\\# `Define the path to your data (please remark the forward slash)`")
cat("\\newline ")  
cat("`filepath <-")
cat(paste0("\"C:/",params$filename[1],"\"`"))
if (params$decimal == "auto"){
  cat("\\# `Upload the data`")
  cat("\\newline ")  
 datainput1 <- fread(params$filename$datapath, header = "auto", sep="auto", dec=".", encoding = "UTF-8", data.table = FALSE, na.strings = "")

   # Probably comma as decimal
  colnames <- sapply(datainput1, function(col) is.numeric(col) & Negate(is.integer)(col))
  if (sum(colnames) == 0L){
    cat(paste0("`df <- fread(filepath, header =\"auto\", sep =\"auto\", dec =\",\", encoding =\"UTF-8\", data.table = FALSE, na.strings = \"\")`"))

  } else {
    cat(paste0("`df <- fread(filepath, header =\"auto\", sep =\"auto\", dec =\".\", encoding =\"UTF-8\", data.table = FALSE, na.strings = \"\")`"))
  }

} else {
  cat("\\# `Upload the data`")
  cat("\\newline ")
  cat(paste0("`df <- fread(filepath, header = \"auto\", sep =\"auto\", dec = \"", params$decimal,"\", encoding =  \"UTF-8\", data.table = FALSE, na.strings = \"\")`"))

}



Try the Statsomat package in your browser

Any scripts or data that you put into this service are public.

Statsomat documentation built on Nov. 17, 2021, 5:17 p.m.