added rstat.getRFrame() method
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2093 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									f5b4675a3d
								
							
						
					
					
						commit
						84ffc7ff6e
					
				
					 1 changed files with 31 additions and 1 deletions
				
			
		|  | @ -32,7 +32,6 @@ from cybertools.pyscript.plot import registerImage | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # not used (yet?): | # not used (yet?): | ||||||
| 
 |  | ||||||
| class RWrapper(object): | class RWrapper(object): | ||||||
| 
 | 
 | ||||||
|     def __init__(self, context): |     def __init__(self, context): | ||||||
|  | @ -73,3 +72,34 @@ class RStat(object): | ||||||
|         key = registerImage(fn) |         key = registerImage(fn) | ||||||
|         return '%s/@@plot?image=%s.jpg' % (absoluteURL(context, request), key) |         return '%s/@@plot?image=%s.jpg' % (absoluteURL(context, request), key) | ||||||
| 
 | 
 | ||||||
|  |     def getRFrame(self, data): | ||||||
|  |         """ Return an R data.frame. | ||||||
|  | 
 | ||||||
|  |             The ``data`` argument is a sequence of tuples | ||||||
|  |             (rowId, columnId, value). Elements with a columnId | ||||||
|  |             that is not present in all rows is omitted. | ||||||
|  |         """ | ||||||
|  |         def checkColumnId(rows, columnId): | ||||||
|  |             for row in rows.values(): | ||||||
|  |                 if columnId not in row: | ||||||
|  |                     return False | ||||||
|  |             return True | ||||||
|  |         data = sorted(data) | ||||||
|  |         rows = {} | ||||||
|  |         for rowId, columnId, value in data: | ||||||
|  |             element = rows.setdefault(rowId, []) | ||||||
|  |             element.append(rowId) | ||||||
|  |         columnsToOmit = [] | ||||||
|  |         for rowId, row in rows.items(): | ||||||
|  |             for columnId in row: | ||||||
|  |                 if not checkColumnId(rows, columnId): | ||||||
|  |                     columnsToOmit.append(columnId) | ||||||
|  |         r.library('ltm') | ||||||
|  |         result = {} | ||||||
|  |         for rowId, columnId, value in data: | ||||||
|  |             if columnId not in columnsToOmit: | ||||||
|  |                 element = result.setdefault(rowId, []) | ||||||
|  |                 element.append(value) | ||||||
|  |         rpy.set_default_mode(rpy.NO_CONVERSION) | ||||||
|  |         matrix = r.data_frame(**result) | ||||||
|  |         return matrix | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm