В 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 также позволяет завершать табуляции для легкого обнаружения компонентов модели.

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