Hi,

I use rpy on linux to call R functions. Works fine up to the following
problem: How to parse arrays (no vectors, that means 2-dimensional) to
R without much effort?

The following code solves the problem (in two different ways).
However, it seems to me that there might be a way to do it more
efficiently.

rpy.r.assign("N", N)
rpy.r("A2 <- array(1:N^2, dim=c(N,N))")
rpy.r("A3 <- array(1:N^2, dim=c(N,N))")


for i in range(N):               # two alternative ways to parse
arrays
    rpy.r.assign("Wi", W[i])
    rpy.r.assign("i", i+1)
    rpy.r("""for( j in 1:N ){
    A2[i,j] <- Wi[j]}""")
    for k in range(N):
        rpy.r.assign("k", k+1)
        rpy.r("A3[i,k] <- Wi[k]")


print rpy.r("A3")
print rpy.r("A2")


As I see it, the problem is, that the 'assign' command works only
either for scalars or vectors (one-dimensional arrays but not more-
dimensional arrays). I tried it for 2-dimensional arrays and the
result is a list whose components are vectors. Again, this is easy to
convert to a two-dimensional array but the point here is that one has
to do it.

Maybe there are people using R with python who have some more
experience. I would be interested how they solved this problem.

Thanks!

Frank

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to