我有一个有趣的问题。使用reticulate
可以在R中使用python函数。我还注意到,可以在python中使用简单的R函数。例如,如果我源代码是R代码:
library(reticulate)
# a vector in R
my_vec <- c("data engineering", "data science")
# a function in R
unique_words <- function(string) {
unique(unlist(strsplit(string, " ")))
}
如果我在同一个项目中使用Python编码,我可以这样做:
my_list=r.my_vec
unique_words=r.unique_words
unique_words(my_list)
我得到了预期的结果:
['data', 'engineering', 'science']
然而,我试图做一些比这更复杂的事情。我想看看是否可以使用R中的MASS::polr()
在Python中运行比例优势逻辑回归。我设置了我的R包,并创建了一个小函数来输出结果的数据帧:
library(MASS)
library(broom)
my_polr <- function(formula, data) {
model <- polr(formula, data, Hess = TRUE)
tidy(model)
}
然后我试着用Python在挑战者号航天飞机数据集上运行:
import pandas as pd
# get orings data
orings=pd.read_csv("https://raw.githubusercontent.com/keithmcnulty/logit_regression_training/main/orings.csv")
# make damage ordered category for my_polr
orings['damage'] = pd.Categorical(orings['damage'], ordered=True,
categories=[0, 1, 2, 3, 4, 5])
# run
my_polr = r.my_polr
my_polr('damage~temp', orings)
但是,当我尝试此操作时,Python中没有发生任何事情。我想知道以前是否有人尝试过这个方法,以及为什么上面的简单函数似乎可以工作,但这一个不行
目前没有回答
相关问题 更多 >
编程相关推荐