Note that there are some explanatory texts on larger screens.

plurals
  1. POtrouble with rpy2, rpart passing data correctly from python to r
    primarykey
    data
    text
    <p>I am trying to run rpart through RPY2 using Python 2.6.5 and R 10.0.</p> <p>I create a data frame in python and pass it along but I get an error stating:</p> <pre><code>Error in function (x) : binary operation on non-conformable arrays Traceback (most recent call last): File "partitioningSANDBOX.py", line 86, in &lt;module&gt; model=r.rpart(**rpart_params) File "build/bdist.macosx-10.3-fat/egg/rpy2/robjects/functions.py", line 83, in __call__ File "build/bdist.macosx-10.3-fat/egg/rpy2/robjects/functions.py", line 35, in __call__ rpy2.rinterface.RRuntimeError: Error in function (x) : binary operation on non-conformable arrays </code></pre> <p>Can anyone help me determine what I am doing wrong to throw this error?</p> <p>the relevant part of my code is this:</p> <pre><code>import numpy as np import rpy2 import rpy2.robjects as rob import rpy2.robjects.numpy2ri #Fire up the interface to R r = rob.r r.library("rpart") datadict = dict(zip(['responsev','predictorv'],[cLogEC,csplitData])) Rdata = r['data.frame'](**datadict) Rformula = r['as.formula']('responsev ~.') #Generate an RPART model in R. Rpcontrol = r['rpart.control'](minsplit=10, xval=10) rpart_params = {'formula' : Rformula, \ 'data' : Rdata, 'control' : Rpcontrol} model=r.rpart(**rpart_params) </code></pre> <p>The two variables cLogEC and csplitData are numpy arrays of float type.</p> <p>Also, my data frame looks like this:</p> <pre><code>In [2]: print Rdata ------&gt; print(Rdata) responsev predictorv 1 0.6020600 312 2 0.3010300 300 3 0.4771213 303 4 0.4771213 249 5 0.9242793 239 6 1.1986571 297 7 0.7075702 287 8 1.8115750 270 9 0.6020600 296 10 1.3856063 248 11 0.6127839 295 12 0.3010300 283 13 1.1931246 345 14 0.3010300 270 15 0.3010300 251 16 0.3010300 246 17 0.3010300 273 18 0.7075702 252 19 0.4771213 252 20 0.9294189 223 21 0.6127839 252 22 0.7075702 267 23 0.9294189 252 24 0.3010300 378 25 0.3010300 282 </code></pre> <p>and the formula looks like this:</p> <pre><code>In [3]: print Rformula ------&gt; print(Rformula) responsev ~ . </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload