Определите случаи Хейвуда из fa(), используя psych и пропустите итерацию в функции
Я работаю над моделированием для изучения восстановления параметров из анализа иерархических факторов, и у меня возникла проблема с psych
предупреждения о выбрасывании упаковки для случаев ультра-Хейвуда и стандартных нагрузок с абсолютным значением> 1.
Короче говоря, я написал функцию для обработки всех симуляций (как в этой статье), и я просто использую цикл for для запуска функции с учетом различных входных данных (например, количество анализируемых факторов, размер выборки, так далее.). Я использую simulateData
функция от lavaan
чтобы сгенерировать данные, а затем использовать пакет psych для факторного анализа (функция омега очень полезна для моих целей). Очевидно, я хотел бы, чтобы мой анализ основывался только на хорошо смоделированных имитируемых данных, но мне трудно определить правила в функции для обработки этих предупреждений.
До сих пор я пытался создавать различные циклы внутри функции, используя grepl()
чтобы найти, когда эти предупреждения появляются, но это было очень проблематично, так как
(а) это потребовало некоторых манипуляций с опциями () и
(b) не похоже, что функция fa() выводит предупреждения внутри циклов (попытка "for", "while" и "repeat")
Я не смог найти какие свойства объекта извлечь из результатов fa()
функция для проверки этих предупреждений.
Я также попытался просто пропустить цикл, когда эти предупреждения появляются с использованием "next", но так как это определено в функции, использование "next" приводит к ошибке и прерывает цикл (я уверен, что это решение будет работать, если Я просто переписываю код, чтобы избежать определения всей симуляции / анализа результатов внутри функции и просто сделать все это внутри цикла for).