michaelhallquist / MplusAutomation

The MplusAutomation package leverages the flexibility of the R language to automate latent variable model estimation and interpretation using Mplus, a powerful latent variable modeling program developed by Muthen and Muthen (www.statmodel.com). Specifically, MplusAutomation provides routines for creating related groups of models, running batches of models, and extracting and tabulating model parameters and fit statistics.
84 stars 46 forks source link

Mplus installed, mplusAvailable() returns FALSE #148

Closed cbratt closed 3 years ago

cbratt commented 3 years ago

@cjvanlissa and I have discovered the following bug, affecting tidySEM:

With Mplus installed and functional via MplusAutomation 1.0, I get the following:

> mplusAvailable(TRUE) == 0
[1] FALSE
> print(MplusAutomation::mplusAvailable())
[1] 1

See here for the discussion on the tidySEM github: https://github.com/cjvanlissa/tidySEM/issues/31

cbratt commented 3 years ago

PS. the link above does not work (but it's the one I get when I copy the URL). I hope the report is still available here: https://github.com/cjvanlissa/tidySEM/issues

I just downgraded to 0.7-3 (because of another problem, see new case). Downgrading to 0.7-3 does not resolve the problem reported above.

JWiley commented 3 years ago

@cbratt it works on the systems I can test, so I think it is something about your system/setup. Can you:

  1. Find the location where Mplus is installed and report results from running pwd when you're in the directory with the mplus executable file?
  2. In that same directory, report output from ls -la
  3. If you can report output from:
[ -x /Applications/Mplus/mplus ] && echo "executable" || echo "no"

where you change the path to your executable file.

cbratt commented 3 years ago

@JWiley, please see below.

(1) I'm on a Mac, so the path to Mplus is /Applications/Mplus/Mplus Editor.app

(2) I believe this is what you request

> setwd("/Applications/Mplus/")
> getwd()
[1] "/Applications/Mplus"
> ls -la
Error: object 'la' not found

(3)

> [ -x /Applications/Mplus/mplus ] && echo "executable" || echo "no"
Error: unexpected '[' in "["
cbratt commented 3 years ago

@JWiley and @cjvanlissa

I don't want to come across as a pain, complaining about free software... MplusAutomation has made life much easier, now I believe that tidySEM can help us avoid the quite cumbersome Mplus language.

As I today work with both MplusAutomation and tidySEM in combination, I seem to experience new issues. If you want me to, I can act as a bug-hunter and report on Github. Or, I can make your life easier by trying to develop my own workarounds for the issues that arise in my attempts with coding.

So, I can continue to report issues only when they stop me from working, or I can report any issue that I believe might be a bug. Your choice. But I don't want to be a pain to you.

cjvanlissa commented 3 years ago

We're happy with your bug reports. You're not complaining about free software, you're contributing!

What I would recommend is to include a reproducible example with your reports, otherwise it's hard to address. See for guidance http://testthewebforward.org/docs/bugs.html

I should tell you that I don't plan on further developing the Mplus functionality in tidySEM, as I intend to focus my extremely limited free time on open source software rather than commercial software. OpenMx will be better supported.

JWiley commented 3 years ago

@cbratt Yes I agree, would rather have bug reports whenever issues arise. Even if we don't have time to solve straight away, its good to log and know and then can fix when there's time.

Apologies a few of those commands needed to be run in your system terminal, not in R, but regardless, I think I got enough information. I think the issue was related to mplusAvailable() not being very smart with macOS (I don't have a convenient macOS system for development/testing).

Regardless, I think this is solved in the development version, can you try installing:

library(devtools)
install_github("michaelhallquist/MplusAutomation")

and see if that resolves the issue?

cbratt commented 3 years ago

@JWiley Indeed, tidySEM now finds Mplus (but tidySEM still does not estimate the model when asked to use Mplus, see the post at tidySEM's Github).

Sorry, for misunderstanding how to list files. In case you still want this information, I get the following list of files when using Terminal (mplus and all other necessary files are there, I believe):

    total 126600
    drwxr-xr-x    8 root  wheel       256 20 Jun 13:55 .
    drwxrwxr-x  186 root  admin      5952 10 Jul 19:38 ..
    drwxr-xr-x    3 root  wheel        96 20 Jun 13:55 Diagrammer.app
    drwxr-xr-x    6 root  wheel       192 16 Mar 07:10 Documentation
    drwxr-xr-x    4 root  wheel       128 16 Mar 07:10 Examples
    drwxr-xr-x    3 root  wheel        96 20 Jun 13:55 Mplus Editor.app
    -rwxr-xr-x    1 root  wheel  64813344 17 Mar 06:25 mplus
    -rwxr--r--    1 root  wheel       210 16 Mar 07:10 startMplus
    (base) Christopher@40 Mplus % 

I assume you've done yours to solve the problem with tidySEM. Thanks a lot for the speedy work!

Chris

JWiley commented 3 years ago

Great, glad to hear its working now! I'm closing this for now, but if the tidySEM issue turns out to be due to an issue in MplusAutomation, please re-open or open a new issue.

cbratt commented 3 years ago

I can confirm that tidySEM seems to work with MplusAutomation.