R 패키지 메타데이터와 수집 신호를 모아 봅니다.
첫 화면에서 판단해야 할 수집 신호를 먼저 배치합니다.
DESCRIPTION에서 감지한 backend 관련 package입니다.
기본 메타데이터를 작은 카드와 토큰으로 압축합니다.
Rcpp| Package | Type | Spec |
|---|---|---|
| OpenMx CRAN · 0.1.0 · 2026-05-30 | Depends | OpenMx |
| dplyr CRAN · 0.1.0 · 2026-05-30 | Imports | dplyr |
| methods CRAN · 0.1.0 · 2026-05-30 | Imports | methods |
| Rcpp CRAN · 0.1.0 · 2026-05-30 | Imports | Rcpp (>= 1.0.10) |
| stats CRAN · 0.1.0 · 2026-05-30 | Imports | stats |
| utils CRAN · 0.1.0 · 2026-05-30 | Imports | utils |
| Rcpp CRAN · 0.1.0 · 2026-05-30 | LinkingTo | Rcpp |
| knitr CRAN · 0.1.0 · 2026-05-30 | Suggests | knitr |
| rmarkdown CRAN · 0.1.0 · 2026-05-30 | Suggests | rmarkdown |
| 검색 결과가 없습니다. | ||
| Package | Type | Spec |
|---|---|---|
| 표시할 dependency edge가 없습니다. | ||
| 검색 결과가 없습니다. | ||
NEWS code{white-space: pre-wrap;} span.smallcaps{font-variant: small-caps;} span.underline{text-decoration: underline;} div.column{display: inline-block; vertical-align: top; width: 50%;} div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} ul.task-list{list-style: none;} mxsem 0.0.7 Improved algebra handling. mxsem previously failed on algebras with braces or numeric values. This was fixed in 0.0.7. mxsem 0.0.9 Fixed bug in parsing of algebras that were commented out. mxsem incorrectly tried to parse algebras if they were in a comment section.README code{white-space: pre-wrap;} span.smallcaps{font-variant: small-caps;} span.underline{text-decoration: underline;} div.column{display: inline-block; vertical-align: top; width: 50%;} div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} ul.task-list{list-style: none;} pre > code.sourceCode { white-space: pre; position: relative; } pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } pre > code.sourceCode > span:empty { height: 1.2em; } .sourceCode { overflow: visible; } code.sourceCode > span { color: inherit; text-decoration: inherit; } div.sourceCode { margin: 1em 0; } pre.sourceCode { margin: 0; } @media screen { div.sourceCode { overflow: auto; } } @media print { pre > code.sourceCode { white-space: pre-wrap; } pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; } pre.numberSource code > span { position: relative; left: -4em; counter-increment: source-line; } pre.numberSource code > span > a:first-child::before { content: counter(source-line); position: relative; left: -1em; text-align: right; vertical-align: baseline; border: none; display: inline-block; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; padding: 0 4px; width: 4em; color: #aaaaaa; } pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } div.sourceCode { } @media screen { pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } } code span.al { color: #ff0000; font-weight: bold; } /* Alert */ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ code span.at { color: #7d9029; } /* Attribute */ code span.bn { color: #40a070; } /* BaseN */ code span.bu { color: #008000; } /* BuiltIn */ code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ code span.ch { color: #4070a0; } /* Char */ code span.cn { color: #880000; } /* Constant */ code span.co { color: #60a0b0; font-style: italic; } /* Comment */ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ code span.do { color: #ba2121; font-style: italic; } /* Documentation */ code span.dt { color: #902000; } /* DataType */ code span.dv { color: #40a070; } /* DecVal */ code span.er { color: #ff0000; font-weight: bold; } /* Error */ code span.ex { } /* Extension */ code span.fl { color: #40a070; } /* Float */ code span.fu { color: #06287e; } /* Function */ code span.im { color: #008000; font-weight: bold; } /* Import */ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ code span.kw { color: #007020; font-weight: bold; } /* Keyword */ code span.op { color: #666666; } /* Operator */ code span.ot { color: #007020; } /* Other */ code span.pp { color: #bc7a00; } /* Preprocessor */ code span.sc { color: #4070a0; } /* SpecialChar */ code span.ss { color: #bb6688; } /* SpecialString */ code span.st { color: #4070a0; } /* String */ code span.va { color: #19177c; } /* Variable */ code span.vs { color: #4070a0; } /* VerbatimString */ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ mxsem mxsem provides a lavaan -like (Rosseel, 2012) syntax to implement structural equation models (SEM) with OpenMx (Boker et al., 2011). The objective is to simplify fitting basic SEM with OpenMx , while also unlocking some very useful advanced features. For instance, mxsem allows for parameter transformations and definition variables. However, mxsem is intentionally incomplete in order to focus on simplicity. The main function ( mxsem() ) is similar to lavaan ’s sem() -function in that it tries to set up parts of the model automatically (e.g., adding variances automatically or scaling the latent variables automatically). Warning : The syntax and settings of mxsem may differ from lavaan in some cases. See vignette("Syntax", package = "mxsem") for more details on the syntax and the default arguments. Alternatives mxsem is not the first package providing a lavaan -like syntax for OpenMx . You will find similar functions in the following packages: metaSEM (Cheung, 2015) provides a lavaan2RAM function that can be combined with the create.mxModel function. This combination offers more features than mxsem . For instance, constraints of the form a < b are supported. In mxsem such constraints require algebras (e.g., !diff; a := b - exp(diff) ). umx (Bates et al., 2019) provides the umxRAM and umxLav2RAM functions that can parse single lavaan -style statements (e.g., eta =~ y1 + y2 + y3 ) or an entire lavaan models to OpenMx models. tidySEM (van Lissa, 2023) provides the as_ram function to translate lavaan syntax to OpenMx and also implements a unified syntax to specify both, lavaan and OpenMx models. Additionally, it works well with the tidyverse . ezMx (Bates, et al. 2014) simplifies fitting SEM with OpenMx and also provides a translation of lavaan models to OpenMx with the lavaan.to.OpenMx function. Because mxsem implements the syntax parser from scratch, it can extend the lavaan syntax to account for specific OpenMx features. This enables implicit transformations with curly braces. Citation Cite OpenMx (Boker et al., 2011) for the modeling and lavaan for the syntax (Rosseel, 2012). To cite mxsem , check citation("mxsem") . Installation mxsem is available from CRAN: install.packages ( "mxsem" ) The newest version of the package can be installed from GitHub using the following commands in R: if ( ! require (devtools)) install.packages ( "devtools" ) devtools :: install_github ( "jhorzek/mxsem" , ref = "main" ) Because mxsem uses Rcpp, you will need a compiler for C++ (e.g., by installing Rtools on Windows, Xcode on Mac and build-essential on linux). Example The following example is directly adapted from lavaan : library (mxsem) model <- ' # latent variable definitions ind60 =~ x1 + x2 + x3 dem60 =~ y1 + a1*y2 + b*y3 + c1*y4 dem65 =~ y5 + a2*y6 + b*y7 + c2*y8 # regressions dem60 ~ ind60 dem65 ~ ind60 + dem60 # residual correlations y1 ~~ y5 y2 ~~ y4 + y6 y3 ~~ y7 y4 ~~ y8 y6 ~~ y8 ' mxsem ( model = model, data = OpenMx :: Bollen) |> mxTryHard () |> summary () Show summary #> Summary of untitled2 #> #> free parameters: #> name matrix row col Estimate Std.Error A lbound ubound #> 1 ind60→x2 A x2 ind60 2.012660e+00 0.38891027 #> 2 ind60→x3 A x3 ind60 1.650326e+00 0.36081541 #> 3 ind60→dem60 A dem60 ind60 4.091644e+00 0.82825703 #> 4 ind60→dem65 A dem65 ind60 4.476238e+01 33.03590013 #> 5 a1 A y2 dem60 1.296343e+00 0.22069102 #> 6 b A y3 dem60 1.187559e+00 0.13597913 #> 7 c1 A y4 dem60 1.413415e+00 0.18183251 #> 8 dem60→dem65 A dem65 dem60 -9.854813e+00 5.74179618 #> 9 a2 A y6 dem65 1.121844e+00 0.16042018 #> 10 c2 A y8 dem65 1.224479e+00 0.14984899 #> 11 y1↔y1 S y1 y1 2.686888e+00 0.59075793 1e-06 #> 12 y2↔y2 S y2 y2 8.576610e+00 1.48229765 1e-06 #> 13 y3↔y3 S y3 y3 5.847195e+00 1.09096957 1e-06 #> 14 y2↔y4 S y2 y4 1.987018e+00 0.78013870 #> 15 y4↔y4 S y4 y4 3.387325e+00 0.74388310 1e-06 #> 16 y2↔y6 S y2 y6 2.385179e+00 0.76306049 #> 17 y6↔y6 S y6 y6 5.129115e+00 0.91213692 1e-06 #> 18 x1↔x1 S x1 x1 3.013521e-01 0.06239685 1e-06 #> 19 x2↔x2 S x2 x2 1.325533e+00 0.27206604 1e-06 #> 20 x3↔x3 S x3 x3 1.326978e+00 0.25275042 1e-06 #> 21 y1↔y5 S y1 y5 7.307489e-01 0.40428182 #> 22 y5↔y5 S y5 y5 2.262309e+00 0.47568663 1e-06 #> 23 y3↔y7 S y3 y7 1.315088e+00 0.74793582 #> 24 y7↔y7 S y7 y7 3.819416e+00 0.79913029 1e-06 #> 25 y4↔y8 S y4 y8 3.442654e-01 0.46177893 #> 26 y6↔y8 S y6 y8 1.438664e+00 0.60291913 #> 27 y8↔y8 S y8 y8 3.402689e+00 0.72529659 1e-06 #> 28 ind60↔ind60 S ind60 ind60 2.286328e-01 0.08085603 1e-06 #> 29 dem60↔dem60 S dem60 dem60 1.000001e-06 NA ! 0! #> 30 dem65↔dem65 S dem65 dem65 1.334856e-01 0.24827033 1e-06 #> 31 one→y1 M 1 y1 5.464667e+00 0.29473841 #> 32 one→y2 M 1 y2 4.256443e+00 0.44Help for package mxsem const macros = { "\\R": "\\textsf{R}", "\\mbox": "\\text", "\\code": "\\texttt"}; function processMathHTML() { var l = document.getElementsByClassName('reqn'); for (let e of l) { katex.render(e.textContent, e, { throwOnError: false, macros }); } return; } Package {mxsem} Contents check_all_fields check_modifier_for_algebra clean_syntax extract_algebra_elements find_model_name get_groups get_individual_algebra_results mxsem mxsem_group_by parameter_table_rcpp parameters print.multi_group_parameters set_starting_values simulate_latent_growth_curve simulate_moderated_nonlinear_factor_analysis split_string_all summarize_multi_group_model unicode_directed unicode_undirected Type: Package Title: Specify 'OpenMx' Models with a 'lavaan'-Style Syntax Version: 0.1.0 Maintainer: Jannik H. Orzek <jannik.orzek@mailbox.org> Description: Provides a 'lavaan'-like syntax for 'OpenMx' models. The syntax supports definition variables, bounds, and parameter transformations. This allows for latent growth curve models with person-specific measurement occasions, moderated nonlinear factor analysis and much more. License: GPL (≥ 3) Depends: OpenMx Imports: Rcpp (≥ 1.0.10), stats, methods, dplyr, utils LinkingTo: Rcpp RoxygenNote: 7.3.1 Encoding: UTF-8 Suggests: knitr, rmarkdown URL: https://jhorzek.github.io/mxsem/ , https://github.com/jhorzek/mxsem/ BugReports: https://github.com/jhorzek/mxsem/issues VignetteBuilder: knitr NeedsCompilation: yes Packaged: 2024-07-28 11:57:02 UTC; jannik Author: Jannik H. Orzek [aut, cre, cph] Repository: CRAN Date/Publication: 2024-07-28 16:50:06 UTC check_all_fields Description checks all elements of the parameter table Usage check_all_fields(parameter_table) Arguments parameter_table parameter table Value nothing check_modifier_for_algebra Description takes in the parameter table and checks if any of the modifiers therein is an mxAlgebra. If so, it replaces the modifier with a temporary name and adds an algebra to the algebra data.frame Usage check_modifier_for_algebra(parameter_table, directed, undirected) Arguments parameter_table parameter table directed symbol used to indicate directed effects (regressions and loadings) undirected symbol used to indicate undirected effects (variances and covariances) Value data.frame with parameters (parameter table) clean_syntax Description takes in a lavaan style syntax and removes comments, white space, etc. Usage clean_syntax(syntax) Arguments syntax lavaan style syntax Value vector of strings with cleaned syntax extract_algebra_elements Description extract all variables/parameters from an mxAlgebra Usage extract_algebra_elements(mxAlgebra_formula, extracted = c()) Arguments mxAlgebra_formula formula embedded in mxAlgebra extracted used in recursive function calls; don't set this manually Value vector with names of variables and parameters used in the function call find_model_name Description checks for a model name in the syntax Usage find_model_name(syntax) Arguments syntax lavaan like syntax Value vector with (1) model name and (2) model syntax get_groups Description returns a list of groups for a multi group model Usage get_groups(multi_group_model) Arguments multi_group_model multi group model created with mxsem_group_by Value list with data for each group Examples # THE FOLLOWING EXAMPLE IS ADAPTED FROM # https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxModel.html library(mxsem) model <- 'spatial =~ visual + cubes + paper verbal =~ general + paragrap + sentence math =~ numeric + series + arithmet' mg_model <- mxsem(model = model, data = OpenMx::HS.ability.data) |> # we want separate models for all combinations of grades and schools: mxsem_group_by(grouping_variables = "school") |> mxTryHard() # let's summarize the results: summarize_multi_group_model(mg_model) # let's get the groups: get_groups(mg_model) get_individual_algebra_results Description evaluates algebras for each subject in the data set. This function is useful if you have algebras with definition variables (e.g., in mnlfa). Usage get_individual_algebra_results( mxModel, algebra_names = NULL, progress_bar = TRUE ) Arguments mxModel mxModel with algebras algebra_names optional: Only compute individual algebras for a subset of the parameters progress_bar should a progress bar be shown? Value a list of data frames. The list contains data frames for each of the algebras. The data frames contain the individual specific algebra results as well as all definition variables used to predict said algebra Examples library(mxsem) set.seed(123) dataset <- simulate_moderated_nonlinear_factor_analysis(N = 50) model <- " xi =~ x1 + x2 + x3 eta =~ y1 + y2 + y3 eta ~ {a := a0 + data.k*a1}*xi " fit <- mxsem(model = model, data = dataset) |> mxTryHard() algebra_results <- get_individual_algebra_results(mxModel = fit, progress_bar = FALSE) # the following plot will only show two data points because there is only # two values for the definition variable k (0 or 1). plot(x = algebra_results[["a"]]$k, y = algebra_results[["a"]]$algebra_result) mxsem Description Create an extended SEM with OpenMx (Boker et al., 2011) using a lavaan -style (Rosseel, 2012) syntax. Usage mxsem( model, data, scale_loadings = TRUE, scale_latent_variances = FALSE, add_intercepts = TRUE, add_variances = TRUE, add_exogenous_latent_covariances = TRUE, add_exogenous_manifest_covariances = TRUE, lbound_variances = TRUE, directed = unicode_directed(), undirected = unicode_undirected(), return_parameter_table = FALSE ) Arguments model model syntax similar to lavaan 's syntax data raw data used to fit the model. Alternatively, an object created with OpenMx::mxData can be used (e.g., OpenMx::mxData(observed = cov(OpenMx::Bollen), means = colMeans(OpenMx::Bollen), numObs = nrow(OpenMx::Bollen), type = "cov") ). scale_loadings should the first loading of each latent variable be used for scaling? scale_latent_variances should the latent variances be used for scaling? add_intercepts should intercepts for manifest variables be added automatically? If set to false, intercepts must be added manually. If no intercepts are added, mxsem will automatically use just the observed covariances and not the observed means. add_variances should variances for manifest and latent variables be added automatically? add_exogenous_latent_covariances should covariances between exogenous latent variables be added automatically? add_exogenous_manifest_covariances should covariances between exogenous manifest variables be added automatically? lbound_variances should the lower bound for variances be set to 0.000001? directed symbol used to indicate directed effects (regressions and loadings) undirected symbol used to indicate undirected effects (variances and covariances) return_parameter_table if set to TRUE, the internal parameter table is returend together with the mxModel Details Setting up SEM can be tedious. The lavaan (Rosseel, 2012) package provides a great syntax to make the process easier. The objective of mxsem is to provide a similar syntax for OpenMx . OpenMx is a flexible R package for extended SEM. However, note that mxsem only covers a small part of the OpenMx framework by focusing on "standard" SEM. Similar to lavaan 's sem() -function, mxsem tries to set up parts of the model automatically (e.g., adding variances automatically or scaling the latent variables automatically). If you want to unlock the full potential of OpenMx , mxsem may not be the best option. Warning : The syntax and settings of mxsem may differ from lavaan in some cases. See vignette("Syntax", package = "mxsem") for more details on the syntax and the default arguments. Alternatives You will find similar functions in the following packages: metaSEM (Cheung, 2015) provides a lavaan2RAM function that can be combined with the create.mxModel function. This combination offers more features than mxsem . For instance, constraints of the form a < b are supported. In mxsem such constraints require achecks all elements of the parameter table
check_all_fields(parameter_table)takes in the parameter table and checks if any of the modifiers therein is an mxAlgebra. If so, it replaces the modifier with a temporary name and adds an algebra to the algebra data.frame
check_modifier_for_algebra(parameter_table, directed, undirected)takes in a lavaan style syntax and removes comments, white space, etc.
clean_syntax(syntax)extract all variables/parameters from an mxAlgebra
extract_algebra_elements(mxAlgebra_formula, extracted = c())checks for a model name in the syntax
find_model_name(syntax)returns a list of groups for a multi group model
get_groups(multi_group_model)# THE FOLLOWING EXAMPLE IS ADAPTED FROM # https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxModel.html library(mxsem) model <- 'spatial =~ visual + cubes + paper verbal =~ general + paragrap + sentence math =~ numeric + series + arithmet' mg_model <- mxsem(model = model, data = OpenMx::HS.ability.data) |> # we want separate models for all combinations of grades and schools: mxsem_group_by(grouping_variables = "school") |> mxTryHard() # let's summarize the results: summarize_multi_group_model(mg_model) # let's get the groups: get_groups(mg_model)evaluates algebras for each subject in the data set. This function is useful if you have algebras with definition variables (e.g., in mnlfa).
get_individual_algebra_results( mxModel, algebra_names = NULL, progress_bar = TRUE )library(mxsem) set.seed(123) dataset <- simulate_moderated_nonlinear_factor_analysis(N = 50) model <- " xi =~ x1 + x2 + x3 eta =~ y1 + y2 + y3 eta ~ a := a0 + data.k*a1*xi " fit <- mxsem(model = model, data = dataset) |> mxTryHard() algebra_results <- get_individual_algebra_results(mxModel = fit, progress_bar = FALSE) # the following plot will only show two data points because there is only # two values for the definition variable k (0 or 1). plot(x = algebra_results[["a"]]$k, y = algebra_results[["a"]]$algebra_result)Create an extended SEM with OpenMx (Boker et al., 2011) using a lavaan-style (Rosseel, 2012) syntax.
mxsem( model, data, scale_loadings = TRUE, scale_latent_variances = FALSE, add_intercepts = TRUE, add_variances = TRUE, add_exogenous_latent_covariances = TRUE, add_exogenous_manifest_covariances = TRUE, lbound_variances = TRUE, directed = unicode_directed(), undirected = unicode_undirected(), return_parameter_table = FALSE )# THE FOLLOWING EXAMPLE IS ADAPTED FROM LAVAAN library(mxsem) model <- ' # latent variable definitions ind60 =~ x1 + x2 + x3 dem60 =~ y1 + a1*y2 + b*y3 + c1*y4 dem65 =~ y5 + a2*y6 + b*y7 + c2*y8 # regressions dem60 ~ ind60 dem65 ~ ind60 + dem60 # residual correlations y1 ~~ y5 y2 ~~ y4 + y6 y3 ~~ y7 y4 ~~ y8 y6 ~~ y8 ' fit <- mxsem(model = model, data = OpenMx::Bollen) |> mxTryHard() omxGetParameters(fit) model_transformations <- ' # latent variable definitions ind60 =~ x1 + x2 + x3 dem60 =~ y1 + a1*y2 + b1*y3 + c1*y4 dem65 =~ y5 + a2 := a1 + delta_a*y6 + b2 := b1 + delta_b*y7 + c2*y8 # regressions dem60 ~ ind60 dem65 ~ ind60 + dem60 # residual correlations y1 ~~ y5 y2 ~~ y4 + y6 y3 ~~ y7 y4 ~~ y8 y6 ~~ y8 ' fit <- mxsem(model = model_transformations, data = OpenMx::Bollen) |> mxTryHard() omxGetParameters(fit)creates a multi-group model from an OpenMx model.
mxsem_group_by( mxModel, grouping_variables, parameters = c(".*"), use_grepl = TRUE )# THE FOLLOWING EXAMPLE IS ADAPTED FROM # https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxModel.html library(mxsem) model <- 'spatial =~ visual + cubes + paper verbal =~ general + paragrap + sentence math =~ numeric + series + arithmet' mg_model <- mxsem(model = model, data = OpenMx::HS.ability.data) |> # we want separate models for all combinations of grades and schools: mxsem_group_by(grouping_variables = "school") |> mxTryHard() # let's summarize the results: summarize_multi_group_model(mg_model)creates a parameter table from a lavaan like syntax
parameter_table_rcpp( syntax, add_intercept, add_variance, add_exogenous_latent_covariances, add_exogenous_manifest_covariances, scale_latent_variance, scale_loading )Returns the parameter estimates of an mxModel. Wrapper for omxGetParameters
parameters(mxMod)print the multi_group_parameters
printmulti_group_parameters(x, ...)set the starting values of an OpenMx model. This is just an interface to omxSetParameters.
set_starting_values(mx_model, values)library(mxsem) model <- ' # latent variable definitions ind60 =~ x1 + x2 + x3 dem60 =~ y1 + a1*y2 + b*y3 + c1*y4 dem65 =~ y5 + a2*y6 + b*y7 + c2*y8 # regressions dem60 ~ ind60 dem65 ~ ind60 + dem60 # residual correlations y1 ~~ y5 y2 ~~ y4 + y6 y3 ~~ y7 y4 ~~ y8 y6 ~~ y8 ' fit <- mxsem(model = model, data = OpenMx::Bollen) |> set_starting_values(values = c("a1" = .4, "c1" = .6)) |> mxTryHard()simulate data for a latent growth curve model with five measurement occasions. The time-distance between these occasions differs between subjects.
simulate_latent_growth_curve(N = 100)set.seed(123) dataset <- simulate_latent_growth_curve(N = 100) model <- " I =~ 1*y1 + 1*y2 + 1*y3 + 1*y4 + 1*y5 S =~ data.t_1 * y1 + data.t_2 * y2 + data.t_3 * y3 + data.t_4 * y4 + data.t_5 * y5 I ~ int*1 S ~ slp*1 # set intercepts of manifest variables to zero y1 ~ 0*1; y2 ~ 0*1; y3 ~ 0*1; y4 ~ 0*1; y5 ~ 0*1; " mod <- mxsem(model = model, data = dataset) |> mxTryHard()simulate data for a moderated nonlinear factor analysis.
simulate_moderated_nonlinear_factor_analysis(N)library(mxsem) set.seed(123) dataset <- simulate_moderated_nonlinear_factor_analysis(N = 2000) model <- " xi =~ x1 + x2 + x3 eta =~ y1 + y2 + y3 eta ~ a*xi # we need two new parameters: a0 and a1. These are created as follows: !a0 !a1 # Now, we redefine a to be a0 + k*a1, where k is found in the data a := a0 + data.k*a1 " mod <- mxsem(model = model, data = dataset) |> mxTryHard() omxGetParameters(mod)splits a string
split_string_all(str, at)summarize the results of a multi group model created with mxsem_group_by
summarize_multi_group_model(multi_group_model)# THE FOLLOWING EXAMPLE IS ADAPTED FROM # https://openmx.ssri.psu.edu/docs/OpenMx/latest/_static/Rdoc/mxModel.html library(mxsem) model <- 'spatial =~ visual + cubes + paper verbal =~ general + paragrap + sentence math =~ numeric + series + arithmet' mg_model <- mxsem(model = model, data = OpenMx::HS.ability.data) |> # we want separate models for all combinations of grades and schools: mxsem_group_by(grouping_variables = "school") |> mxTryHard() # let's summarize the results: summarize_multi_group_model(mg_model)this function returns the unicode for directed arrows
unicode_directed()this function returns the unicode for undirected arrows
unicode_undirected()| Repository | Version | Published | First seen | Last seen | Docs |
|---|---|---|---|---|---|
| CRAN | 0.1.0 | 2026-05-29 | 2026-05-30 |
표시할 OSV 데이터가 없습니다.
표시할 OpenAlex 데이터가 없습니다.