seems like this is a problem with large datasets and rpy2. The python
code will fail, the R will not.
If I reduce the data size to 5000000, both snippets will work.
===python code run in IDLE===
import os
os.environ['R_HOME'] = 'C:/Users/anup/Documents/red/develop/R/R-2.9.2'
import rpy2.robjects as rpy2
count = 200
for x in range(count):
print 'round' , x
rpy2.r('a<-rnorm(50000000)')
rpy2.r('gc()')
===ERROR===
rpy2.r('a<-rnorm(50000000)')
File "C:\Python26\lib\site-packages\rpy2\robjects\__init__.py", line
536, in __call__
res = self.eval(p)
File "C:\Python26\lib\site-packages\rpy2\robjects\__init__.py", line
423, in __call__
res = super(RFunction, self).__call__(*new_args, **new_kwargs)
RRuntimeError: Error: cannot allocate vector of size 381.5 Mb
==R code run in windows RGui.exe==
for( x in 1:200){
print(x)
a<-rnorm(50000000)
gc()
}
Any suggestions??
Thanks,
Anup
On Sun, Jan 2, 2011 at 11:13 PM, Anup Parikh <[email protected]> wrote:
> I am using rpy2.0.8 on windows and finding that the following script
> keeps taking memory as it processes the loop. since the call to rnorm
> is never assigned, i'm not sure how to release the memory? Is this a
> bug in 2.0.8? Any suggestions would be helpful.
>
>
> import os
> os.environ['R_HOME'] = 'C:/Users/anup/Documents/red/develop/R/R-2.9.2'
> import rpy2.robjects as rpy2
>
> for x in range(20):
> rpy2.r('rnorm(50000000)')
> rpy2.r('gc()')
>
>
> Thanks,
> Anup
>
------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web. Learn how to
best implement a security strategy that keeps consumers' information secure
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list