A growth curve model written in lavaan and MPLUS as a syntax reference guide. Imagine a latent growth curve on affect across 4 time points. First, lavaan code:

lavaan_string <- '

# Latent intercept and slope factors

intercept_affect =~ 1*affect.1 + 1*affect.2 + 1*affect.3 + 1*affect.4
slope_affect =~ 0*affect.1 + 1*affect.2 + 2*affect.3 + 3*affect.4

# Mean and variance of latent factors

intercept_affect ~~ intercept_affect
slope_affect ~~ slope_affect

# Covariance between latent factors

intercept_affect ~~ slope_affect

# Fix observed variable means to 0

affect.1 ~ 0
affect.2 ~ 0
affect.3 ~ 0
affect.4 ~ 0

# Constrain residual (error) variance of observed variables to equality across time

affect.1 ~~ res_var*affect.1
affect.2 ~~ res_var*affect.2
affect.3 ~~ res_var*affect.3
affect.4 ~~ res_var*affect.4


'

Now the same thing in MPLUS syntax:

mplus_string <- '

        ! Latent intercept and slope factors
        intercept_affect BY affect.1@1 affect.2@1 affect.3@1 affect.4@1;
        slope_affect BY affect.1@0 affect.2@1 affect.3@3 affect.4@5;

        ! estimate mean of latent intercept
        [intercept_affect];

        ! estimate mean of latent slope
        [slope_affect]

        ! estimate variance of intercept
        intercept_affect;

        ! estimate variance of slope
        slope_affect;

        ! covariance between intercept and slope
        intercept_affect WITH slope_affect;

        ! Fix observed variable means to 0 so we can estimate a mean for the latent variable
        [affect.1@0 affect.2@0 affect.3@0 affect.4@0];

        ! constrain estimates of residual variances to be equivalent at each time point
        affect.1(res_var); affect.2(res_var); affect.3(res_var); affect.4(res_var);



'

Bo\(^2\)m =)