Что означает «Ошибка в if (target < min(modVar)) {: условие имеет длину > 1» в анализе LOSEM с использованием OpenMX под R?
Я хочу провести анализ близнецов LOSEM с использованием OpenMX под управлением R. (Он используется в поведенческой генетике и исследованиях близнецов для изучения влияния генетики и окружающей среды на черты и поведение).
Мои переменные: a.res. и b.res(зависимые переменные [стандартизованные]),z_age (возраст [стандартизованные]), zygof1f2 (зиготность,MZ означает монозиготный = 1, DZ означает дизиготный = 2)
Мой код:
\#Select dependent variables.
selDVs = c("a.res.", "b.res.")
\#Select moderator
moderator = "z_age"
\#Subset MZ and DZ data
mzData =subset(DS_HA, zygof1f2 =="MZ",c(selDVs, moderator))
dzData =subset(DS_HA, zygof1f2 =="DZ",c(selDVs, moderator))
\#Define LOSEM increments
targets = seq(from = -1.0, to = 2.0, by =.01)
\#Run and plot for specified windows
output\<-umxGxE_window(selDVs = selDVs, moderator = moderator, mzData = mzData, dzData = dzData, target = targets)
После выполнения последней команды выдается следующая ошибка:
Ошибка в if (target < min(modVar)) {: длина условия > 1
Я не понимаю ошибку и как ее решить.
1 ответ
Это ошибка в функции. Вам следует сообщить об этом автору.
Страница помощи дляumxGxE_window
говорит, что это может быть «Выбранный пользователем список значений модератора для проверки (по умолчанию = NULL = изучить весь диапазон)», поэтому вы используетеtargets <- seq(from = -1.0, to = 2.0, by =.01)
должно быть в порядке. Но функция имеет тест в сообщении об ошибке, что недопустимо, когдаtarget
это вектор типаtargets
.
Обходной путь может заключаться в том, чтобы поместить все в цикл и передавать по одной цели за раз, но это будет очень хлопотно и может не дать желаемого результата.