Как запустить функцию R попробуйте (nls ..) с rpy2 в Python - PullRequest
0 голосов
/ 03 февраля 2020

Я использую 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']

, ни один из которых не упоминает коэффициенты или остаточную сумму квадратов.

...