将 R 代码转换为 Python 的问题

Abd*_*man 2 python r pip code-conversion

from pyensae.languages import r2python

print(r2python(rscript, pep8=True))
Run Code Online (Sandbox Code Playgroud)

filename.R我在转换时遇到问题pythonfilename.py,因为这些库对于转换没有用,因为它会生成错误“找不到模块”,即使我使用以下方式安装了该模块:

pip install pyensae

Pra*_*ran 6

以下步骤对我的Python 版本 Python 3.7.6有用。

  1. 升级你的pip
python -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
  1. 安装pyensae模块
pip install pyensae
Run Code Online (Sandbox Code Playgroud)
  1. 通过执行下面的 import 检查你的 python 控制台
from pyensae.languages import r2python
Run Code Online (Sandbox Code Playgroud)

如果你面临

ModuleNotFoundError:没有名为“antlr4”的模块

或面对

ModuleNotFoundError:没有名为“内置”的模块

然后执行以下命令

pip install antlr4-python3-runtime
Run Code Online (Sandbox Code Playgroud)

经过上述步骤后,我可以将 R 脚本转换为 python 语言

rscript = """
nb=function(y=1930){
debut=1816
MatDFemale=matrix(D$Female,nrow=111)
colnames(MatDFemale)=(debut+0):198
cly=(y-debut+1):111
deces=diag(MatDFemale[:,cly[cly%in%1:199]])
return(c(B$Female[B$Year==y],deces))}
"""
from pyensae.languages import r2python
print(r2python(rscript, pep8=True))

Run Code Online (Sandbox Code Playgroud)

控制台输出

ANTLR 运行时和生成的代码版本不一致:4.9.1!= 4.8 ANTLR 运行时和生成的代码版本不一致:4.9.1!= 4.8 from python2r_helper import make_tuple

def nb(y=1930):
    debut = 1816
    MatDFemale = matrix(D . Female, nrow=111)
    colnames(MatDFemale) .set(range((debut + 0), 198))
    cly = range((y - debut + 1), 111)
    deces = diag(MatDFemale[:, cly[set(cly) & set(range(1, 199))]])
    return make_tuple(B . Female[B . Year == y], deces)
Run Code Online (Sandbox Code Playgroud)