# Create an empty model, and place it in an object. model <- mxModel()
# Create a model named 'firstdraft' with one matrix
model <- mxModel('firstdraft', mxMatrix('Full', nrow = 3, ncol = 3, name = "A"))
# Add two matrices to the model, renaming it too 'finaldraft'
model <- mxModel(model, name= "finaldraft", mxMatrix('Symm', nrow = 3, name = "S"), mxMatrix('Iden', nrow = 3, name = "F") )
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 <- data.frame(x=rnorm(100),y=rnorm(100)) model <- mxModel(model, mxData(myData, type='raw') )
# View the matrix named "A" in MxModel object 'model'
# View the data associated with MxModel object '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)
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 WILL NOT WORK because "container.A" and "submodel.A" are identical objects: Both contain the value "A" in the slot "name."
A <- mxMatrix("Full", 1, 1, name = "A") submodel1 <- mxModel("submodel1", A) container <- mxModel("container", submodel1, A) # Oh oh, this would have deleted "countainer.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.