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?): | ||||
| 
 | ||||
| class RWrapper(object): | ||||
| 
 | ||||
|     def __init__(self, context): | ||||
|  | @ -73,3 +72,34 @@ class RStat(object): | |||
|         key = registerImage(fn) | ||||
|         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