The constructor for RDataFrame is very conservative regarding that... may be too much, the more I think about it.
I am considering making it accept any object that has the method 'items()' (which would at least cover TaggedList as well as regular Python dictionaries). L. On Fri, 2008-11-14 at 11:06 -0500, laurent oget wrote: > I encountered the same issue a few weeks ago > > http://sourceforge.net/mailarchive/message.php?msg_name=1224257111.11195.93.camel%40hot-spring > > import array > import rpy2.robjects as ro > import rpy2.rlike.container as rlc > > x = ro.RVector(array.array('i', [1,2])) > y = ro.RVector(array.array('i', [3,4])) > > tl = rlc.TaggedList([x, y], tags = ('x', 'y')) > > dataf = ro.RDataFrame(tl) > > Laurent > > > 2008/11/13 <[EMAIL PROTECTED]>: > > > > Hi, > > > > this might be an trivial issue, bu I have trouble twisting my brain enough > > to make this work. > > > > In our python-application (http://sourceforge.net/projects/sensorytool/) we > > use some R-code programmed by a research group we collaborate with. I know > > next to nothing about R, but I made the transfer of arrays from Python to R > > and back work eventually using rpy1 quite some time ago. We managed to do > > this without needing to save the data to the harddisk and then having to > > read it with R. The code looks awkward I guess, but it worked for us which > > is what mattered. This is the code using rpy1: > > > > > > from rpy import * > > from sensorytools import SensoData > > > > data = SensoData('C:\Work\PanelCheck\Methods\Niels\october\Ost.txt') > > rawScores = data.MatrixData().copy() > > rawLables = data.MatrixLables().copy() > > raw = hstack((rawLables, rawScores)) > > atts = data.Attributes() > > lables = data.Lables() > > colNames = lables + atts > > > > # Cannot use attributes list as it is, because strings are in unicode, > > which causes rpy to crash > > # Need to convert unicode-strings to non-unicode strings > > convAtts = [] > > for attribute in colNames: > > convAtts.append(attribute.encode("latin-1")) > > > > # Need to transpose the raw data matrix since rpy transposes it when > > transferring it to an R-data frame > > part = transpose(raw[:,:].copy()) > > > > # Constructing the data frame in R > > # Switch to 'no conversion', such that everything that is created now is a > > R object. > > set_default_mode(NO_CONVERSION) > > names = r.get('names<-') > > > > frame = r.data_frame(x=part) > > frame = names(frame, convAtts) > > r.print_(frame) > > > > # Switch back to basic conversion, so that variable "res" (which contains > > the results; see below) > > # will be a python list and not a R object > > set_default_mode(BASIC_CONVERSION) > > > > # Now running Per Brockhoff's R-function to analyse the data in the > > constructed data frame and store > > # results in variable "res" > > r('source("C:/Work/PanelCheck/Methods/Niels/october/sensmixed.R")') > > res = r.sensmixed(frame) > > > > > > Here are the files to make this work for those who would like to try it > > out: > > (See attached file: Ost.txt)(See attached file: sensorytools.py)(See > > attached file: sensmixed.R) > > > > > > Now we are trying to make the switch to rpy2. Using the RDataFrame > > constructor won't do it probably, since the order of the data will be lost. > > That is at least what I understood from the rpy2-documentation. > > Constructing the data frame in R (by using read.table) makes us save the > > numpy array to the harddisk first and then read it again in R via > > read.table(), which is what we would like to avoid. > > > > Is there an obvious way to do this? Is there more information on TaggedList > > instances? > > Any help is much appreciated! > > > > > > BTW, I think you guys do really a great job with rpy! > > > > Cheers > > Oliver > > > > ------------------------------------------------------------------------- > > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > > Build the coolest Linux based applications with Moblin SDK & win great > > prizes > > Grand prize is a trip for two to an Open Source event anywhere in the world > > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > > _______________________________________________ > > rpy-list mailing list > > rpy-list@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/rpy-list > > > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > rpy-list mailing list > rpy-list@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/rpy-list ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ rpy-list mailing list rpy-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rpy-list