Мне нужно использовать регрессию Дирихле в Python
, и единственная найденная мною реализация была доступна в R
. Следовательно, я хотел бы преобразовать этот R
код в rpy2
представление.
library(DirichletReg)
data(ArcticLake)
ArcticLake$Y <- DR_data(ArcticLake[, 1:3])
DirichReg(Y ~ depth, data=ArcticLake)
DR_data
функция возвращает матрицу с атрибутами. Я не совсем уверен в его внутреннем представлении в R
, но str
делает его похожим на отдельный элемент в списке, а print
делает его похожим на дополнительный набор из 3 столбцов.
Из-заВ частности, мне не удалось преобразовать приведенный выше код в rpy2
. Выполнение функции DR_data
само по себе работает просто отлично.
from rpy2.robjects.packages import importr, data
from rpy2.robjects import Formula
from rpy2.robjects import pandas2ri
pandas2ri.activate()
dirichlet_reg = importr("DirichletReg")
arctic_lake = data(dirichlet_reg).fetch("ArcticLake")["ArcticLake"]
dr_arctic = dirichlet_reg.DR_data(pandas2ri.ri2py(arctic_lake).iloc[:, 0:3])
Назначение вывода для окончательной подгонки, однако, вот где я изо всех сил. Я пробовал это, но окончательная структура неверна.
arctic_lake.do_slot_assign("Y", dr_arctic) # arctic_lake$Y <- dr_arctic
fmla = Formula("Y ~ depth")
dirichlet_reg.DirichReg(fmla, data=arctic_lake)
Как правильно назначить матрицу для фрейма данных, используя rpy2
таким же образом, R
делает это?