В OpenMx 2, что означает Ошибка: нет слота с именем "target" для этого объекта класса "MxRAMModel"?
В OpenMx 1 мы могли получить доступ к цели с
model@objective
В OpenMx 2 этот слот отсутствует (поскольку цель теперь явно различает ожидание и функцию подгонки). Итак, я думаю, что мы должны получить доступ к цели с
model$expectation
model$fitfunction
Или же
model@expectation
model@fitfunction
Это правильно?
2 ответа
В примечании к выпуску 2.0 говорится:
- Замена @ accessors $ accessors в объектах mxModel. Вам больше не нужно отслеживать, когда использовать какой; просто всегда используйте $!
ПРИМЕЧАНИЕ. Что касается последнего пункта, то пользователи должны всегда иметь привычку ВСЕГДА использовать $ вместо @. Например, оценка myModelRun @ output $ теперь будет оценкой myModelRun $ output $. Мы НЕ МОЖЕМ гарантировать, что каждое использование @ accessor, которое работало с версиями 1.3/1.4, продолжит работать в 2.0.
http://openmx.psyc.virginia.edu/2014/05/first-openmx-20-beta-released
Да: в OpenMx 2 правильно сделать model$fitfunction
а также model$expectation
В целом, в OpenMx 2 избегайте использования @ для доступа к любой части модели: используйте вместо нее $. Полезно, что OpenMx 2 также позволяет завершать табуляции для легкого обнаружения компонентов модели.