reyman wrote:
> Hello,
> I have problem with last version of R and rpy classic, so i try to 
> convert my source code into rpy2, but i have problem to understand with 
> calling function into a function
> 
> Exemple with my db connection :
> *
> /With rpy classic, it's ok : /*
> 
> rpy.set_default_mode(rpy.NO_CONVERSION)
> r('conn <- dbConnect(PgSQL(), host="localhost", dbname="simpop", 
> user="postgres", password="postgres")')
> *
> /With rpy2, error :/*
> 

The *same* with rpy2 would then be:

import rpy2.robjects as robjects

robjects.r('conn <- dbConnect(PgSQL(), host="localhost", 
dbname="simpop", user="postgres", password="postgres")')



> import rpy2.robjects as robjects
> import sys
> import math
> 
> r = robjects.r
> 
> r.library("Rdbi")
> r.library("RdbiPgSQL")
> r.library("ggplot2")

(note: You may want to already check the graphics (and ggplot2) niceties 
in rpy2-2.1-dev (a snapshot of the doc in online).)

> #Connect to DB with RPY2
> rconn = r.dbConnect
> bdobj = r.PgSQL
> 
> print bdobj
> 
> conn = rconn( bdobj, host="localhost", dbname="simpop", user="postgres", 
> password="postgres")
> *
> /At execution : /*
> 
> function ()
> {
>     out <- list(description = "PostgreSQL object")
>     class(out) <- c("PgSQL", "Rdbi")
>     return(out)
> }
> <environment: namespace:RdbiPgSQL>
> Error in dbConnect.default(function ()  : Invalid database class
> Traceback (most recent call last):
>   File "s_ranktail_resume_rpy2.py", line 19, in <module>
>     conn = rconn( bdobj, host="localhost", dbname="simpop", 
> user="postgres", password="postgres")
>   File "/usr/lib/python2.5/site-packages/rpy2/robjects/__init__.py", 
> line 422, in __call__
>     res = super(RFunction, self).__call__(*new_args, **new_kwargs)
> rinterface.RRuntimeError: Error in dbConnect.default(function ()  : 
> Invalid database class
> 
> I don't understand where is the problem ?

I think that the problem is what the error message tells: you are 
feeding rconn() with an invalid database class, and that invalid class 
happen to be a function. You are most certainly passing dbobj while you 
should be passing dbobj().


L.

 >
> Thx a lot with a newbie on python/R/Rpy2
> Seb
> 
> 
> ------------------------------------------------------------------------
> 
> ------------------------------------------------------------------------------
> Enter the BlackBerry Developer Challenge  
> This is your chance to win up to $100,000 in prizes! For a limited time, 
> vendors submitting new applications to BlackBerry App World(TM) will have 
> the opportunity to enter the BlackBerry Developer Challenge. See full prize 
> details at: http://p.sf.net/sfu/blackberry
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> rpy-list mailing list
> rpy-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rpy-list


------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry
_______________________________________________
rpy-list mailing list
rpy-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpy-list

Reply via email to