You are here

mxModel Help

Primary tabs

Wiki home page


Basic Examples

Create an empty model, and place it in an object.

 model = mxModel()

Create a model named 'firstdraft' with one matrix

model = mxModel('firstdraft', 
    mxMatrix(name = "A", 'Full', nrow = 3, ncol = 3)
)

Add two matrices to the model, renaming it 'finaldraft'

model = mxModel(model, name= "finaldraft",
    mxMatrix(name = "S", 'Symm', nrow = 3),
    mxMatrix(name = "F", 'Iden', nrow = 3)
)

Note: the difference between the "model" variable, and the "name" of the model

Add data to the model from an existing data frame in object 'data'

myData = mxData(data.frame(x=rnorm(100),y=rnorm(100)), type='raw')
model = mxModel(model, myData)

View the matrix named "A" in MxModel object 'model'

model$matrices$A
# or
model$A

View the data associated with MxModel object 'model'

model$data

Remove an object from a model

You can remove paths, matrices, algebras, and other objects from a model using mxModel, with the to-be-modified model as its first parameter, and then a comma delimited list of the names of the objects you want to remove, setting remove to TRUE e.g.

# make a model
aModel = mxModel("my name",
    mxMatrix(name="myMatrix", type="Full",nrow=8,ncol=5)
)
 
# remove by name
aMinus = mxModel(aModel, "myMatrix", remove = TRUE)

Names, models, and objects

Note: If the first parameter is a model, it is used as a base model to modify. If you give a string, then this is used as a name for a new model.

This example shows why you must use the name of the entity instead of the entity itself.

The following code won't work because "container$A" and "submodel$A" are identical objects: Both contain the value "A" in the slot "name."

Make a matrix named A and add it to a model called submodel1, then put submodel1 inside a container model:

 myMatrix = mxMatrix(name = "A", "Full", 1, 1)
 
    submodel1 = mxModel("submodel1", myMatrix)
 
    container = mxModel("container", submodel1, A)

Attempt to remove the "A" matrix from submodel 1:

Oh oh, this would have deleted "top.A" instead of "submodel.A":

accident = mxModel(container, 
    submodel1$A, remove = TRUE
)

Please add material here as you learn...

If you have questions not answers, then add those here: That's how a wiki works.