Я использую rpy2 для загрузки функции R nls в Python. Пока это мой сценарий:
from rpy2.robjects.packages import importr
stats = importr("stats")
d = {"y":y,"x":x,"x2":x2}
dataf = robjects.DataFrame(d)
start = robjects.r.list(...)
control = stats.nls_control(maxiter=100)
formula = stats.as_formula('...')
m = stats.nls(formula, data=dataf, start=start, control=control)
Это не приводит к ошибкам. Однако исходный код R выполняется как:
m = NULL
m = try(nls(formula,start=start,control=control))
Как воспроизвести функцию try (nls ..) с помощью rpy2?
Код R создает модель нелинейной регрессии "m" с двумя коэффициентами и остаточной суммой квадратов, в то время как версия Python rpy2 создает rpy2.robjects.vectors.ListVector
(которую я знаю, как преобразовать в массив numpy) со следующими характеристиками:
>>>print(m.names)
['m' 'convInfo' 'data' 'call' 'dataClasses' 'control']
, ни один из которых не упоминает коэффициенты или остаточную сумму квадратов.