Python-RPy - “x$terms中的错误:$运算符对原子向量无效”
我刚开始学习RPy,所以如果我的问题很简单,请多包涵。我正在尝试用Python写这个主题的最佳解决方案:在回归模型中筛查(多重)共线性,但我遇到了以下错误:
rpy.RPy_RException: 在 x$terms 中出错:$ 操作符对原子向量无效
我写的代码是:
from rpy import *
r.set_seed(42)
a=r.rnorm(100)
b=r.rnorm(100)
m=r.model_matrix('~a+b')
我哪里做错了?
编辑:使用 agstudy 写的回复(谢谢你的帮助!),我准备了一个适用于rpy2的解决方案
from rpy2 import robjects
rset_seed = robjects.r('set.seed')
fmla = robjects.Formula('~a+b')
model_matrix = robjects.r('model.matrix')
rnorm = robjects.r('rnorm')
rset_seed(42)
env = fmla.environment
env['a']=rnorm(100)
env['b']=rnorm(100)
m=model_matrix(fmla)
1 个回答
0
这应该可以正常工作
fmla = r.Formula('~a+b')
env = fmla.environment
env['a'] = a
env['b'] = b
r.model_matrix(fmla)
在R语言中,你可以重现这个错误
set_seed(42)
a=rnorm(100)
b=rnorm(100)
m=model.matrix('~a+b')
Error: $ operator is invalid for atomic vectors
m=model.matrix(formula('~a+b')) ## this works
(Intercept) a b
1 1 -0.1011361 0.4354445
2 1 0.3782215 -1.5322641
3 1 1.4772023 0.3280948
4 1 0.2892421 1.9012016
5 1 -0.2596562 0.2036678
6 1 -0.5585396 -0.1536021