Страница 1 из 1
sgeostat
Добавлено: 07 янв 2010, 03:04
Игорь Черниенко
Рад приветствовать!
После применения fix к объектам этого модуля он перестает воспринимать их классы как свои (скажем, point после открытия как point уже не воспринимается). Это так и должно быть?
Re: sgeostat
Добавлено: 07 янв 2010, 05:10
Максим Дубинин
не покажете ли фрагмент кода?
Re: sgeostat
Добавлено: 07 янв 2010, 05:18
Игорь Черниенко
Примерно так:
> sj.xvg_o<-est.variogram(sj.pt,sj.pr,"cmj2") ' sj.pt - точки; оценивается вариограмма, при желании - строится график
> fix(sj.pt) открываем, смотрим, ничего не меняем
> sj.xvg_o<-est.variogram(sj.pt,sj.pr,"cmj2","cmf2") то же что в первой строке
Ошибка в est.variogram(sj.pt, sj.pr, "cmj2", "cmf2") :
Point.obj must be of class, "point".
т.е sj.pt больше не поинт. если выполнить команду
sj.pt<-point(sj.pt) все встает на свои места.
такая же ситуация с вариограммами и прочим.
Re: sgeostat
Добавлено: 07 янв 2010, 07:53
Максим Дубинин
да, fix() может поменять класс объекта, так как ему приходится "засовывать" его в некоторые слишком узкие для него рамки, в итоге обкусываются некоторые атрибуты и меняется класс. А иногда может и не менять, смотрите например:
Результат - ts, класс не изменился. А вот, если mts:
Код: Выделить всё
y <- ts(cbind(1:5,1:5))
class(y)
fix(y)
class(y)
Результат был mts, cтал matrix. Странновато, но некоторая логика есть. Из справки:
fix invokes edit on x
Editing an R object may change it in ways other than are obvious
Re: sgeostat
Добавлено: 07 янв 2010, 22:00
Игорь Черниенко
Спасибо, буду иметь ввиду.
Re: sgeostat
Добавлено: 08 янв 2010, 17:06
Игорь Черниенко
Кстати, то же самое происходит с объектами хтабс в модуле гмоделс.