I fixed a problem with rpy2 (the fix is in SVN)
It does seem to fit happily a lot of linear models without problems now.
For the moment rpy-1.x, calling R's gc() is the only known workaround, I think.
##---
#
# brutal and naive strategy for model selection:
# fit all possible two-variable models
#
# The purpose is of this is code to try reproducing
# an elusive bug when iteratively fitting a lot of models.
#
# Here, we are iterating nvariable * (nvariables-1) times.
#
import rpy2.robjects as ro
import array
import random
# build pool of variables
nvariables = 75
variables = {}
for v_i in range(nvariables):
a_i = array.array('f', [random.random() for i in xrange(1000)])
rv_i = ro.RVector(a_i)
variables['v%i' %v_i] = rv_i
# create a dummy response variable
y = variables['v1'].r + variables['v2']
# fit all pairwise combinations
dataframe = ro.r['data.frame']
lm = ro.r['lm']
res = []
for v1_i in range(nvariables):
for v2_i in xrange(v1_i+1):
subvarnames = ['v%i' %x for x in [v1_i, v2_i]]
subvar = dict([(x, variables[x]) for x in subvarnames])
subvar['y'] = y
dataf = dataframe(**subvar)
fit = lm('y ~ %s + %s' %(subvarnames[0], subvarnames[1]),
data=dataf)
sumfit = ro.r.summary(fit)
rsq = sumfit.r['adj.r.squared'][0][0]
res.append((v1_i, v2_i, rsq))
## check R2 == 1 for the pair (v1, v2)
[x for x in res if x[2] == 1]
L.
2008/7/18 Laurent Gautier <[EMAIL PROTECTED]>:
> 2008/7/18 Laurent Gautier <[EMAIL PROTECTED]>:
>> 2008/7/17 laurent oget <[EMAIL PROTECTED]>:
>>>
>>>
>>> 2008/7/17 Laurent Gautier <[EMAIL PROTECTED]>:
>>>>
>
>> It might not really be a race condition, but more an overzealous
>> garbage collection.
>> R does not have reference counting, and objects without an associated
>> symbol/name
>> in the R space can be flagged as "protected" from garbage collection.
>> The removal of
>> the protection is recursive, I think,
>
> Just a work of caution: I I might not be thinking right. After
> checking R's source, I am
> not sure that contained elements in a "preserved" container are
> recursively unprotected.
> There is more that I do not know about R's memory management than I thought...
>
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list