2015-05-20 3 views
1

я работал в mirt пакете в R и заметил, что я не мог использовать mirt:: или mirt::: называть coef или residuals функции. Из того, что я могу сказать, это разница S3-S4 (магические пальцы & ручные махания).Как вызвать специфический метод S4 в R

Это подводит меня к вопросу, как вы называете конкретную функцию R внутри своего пакета, когда она закодирована в S4?

+0

Можете ли вы представить воспроизводимый пример, демонстрирующий именно то, что вы хотите выполнить? – cdeterman

+0

@cdeterman 'mirt ::: coef()' не вызывает уникальные параметры для 'coef' в' mirt'. Мой вопрос - просто, как это сделать. –

+0

Несомненно, но без примера сложнее проверить любое потенциальное решение. Не все знакомы с пакетом 'mirt'. Какая ошибка вы получаете? Почему бы просто не загрузить пакет и применить функции на своих соответствующих объектах? – cdeterman

ответ

1

После

> library(mirt) 
Loading required package: stats4 
Loading required package: lattice 

Я вижу

> methods(coef) 
[1] coef,ANY-method    coef,DiscreteClass-method  
[3] coef,MixedClass-method   coef,mle-method    
[5] coef,MultipleGroupClass-method coef,SingleGroupClass-method 
[7] coef,summary.mle-method  coef.aov*      
[9] coef.Arima*     coef.default*     
[11] coef.listof*     coef.nls*      
see '?methods' for accessing help and source code 

Я предполагаю, что у вас есть экземпляр одного из классов, например, 'DiscreteClass. Вы можете выбрать метод с

selectMethod("coef", signature="DiscreteClass") 

или, может быть, более естественно

selectMethod("coef", class(obj)) 

где obj является экземпляром объекта, вы заинтересованы в Но вы не должны вызывать особый метод. это нужно позаботиться - в чем проблема, которую вы действительно испытываете.

Смежные вопросы