Определите случаи Хейвуда из fa(), используя psych и пропустите итерацию в функции

Я работаю над моделированием для изучения восстановления параметров из анализа иерархических факторов, и у меня возникла проблема с psych предупреждения о выбрасывании упаковки для случаев ультра-Хейвуда и стандартных нагрузок с абсолютным значением> 1.

Короче говоря, я написал функцию для обработки всех симуляций (как в этой статье), и я просто использую цикл for для запуска функции с учетом различных входных данных (например, количество анализируемых факторов, размер выборки, так далее.). Я использую simulateData функция от lavaan чтобы сгенерировать данные, а затем использовать пакет psych для факторного анализа (функция омега очень полезна для моих целей). Очевидно, я хотел бы, чтобы мой анализ основывался только на хорошо смоделированных имитируемых данных, но мне трудно определить правила в функции для обработки этих предупреждений.

До сих пор я пытался создавать различные циклы внутри функции, используя grepl() чтобы найти, когда эти предупреждения появляются, но это было очень проблематично, так как

  • (а) это потребовало некоторых манипуляций с опциями () и

  • (b) не похоже, что функция fa() выводит предупреждения внутри циклов (попытка "for", "while" и "repeat")

Я не смог найти какие свойства объекта извлечь из результатов fa() функция для проверки этих предупреждений.

Я также попытался просто пропустить цикл, когда эти предупреждения появляются с использованием "next", но так как это определено в функции, использование "next" приводит к ошибке и прерывает цикл (я уверен, что это решение будет работать, если Я просто переписываю код, чтобы избежать определения всей симуляции / анализа результатов внутри функции и просто сделать все это внутри цикла for).

0 ответов

Другие вопросы по тегам