On Jul 7, 5:02 am, Andrzej Giniewicz <ggi...@gmail.com> wrote:
> ah, thanks - I know about r.tab, well - most of it are R commands, the
> issue is that I didn't found those sage specific ones - it would help
> if at least list of modified commands would appear in "r?" docstrings.
> Anyway, is r.set working? I used:
>
> sage: r.ls()
> character(0)
> sage: r.set('y', r([1,2,3]))
> sage: r.ls()
> [1] "sage0" "sage1" "sage2" "sage3" "sage4"
>
Dear Andrzej,

Thanks for your interest in our R interface.  We really appreciate
actual practical experience with it.

Note the following in

sage: r.set?

Definition:     r.set(self, var, value)
Docstring:
       Set the variable var in R to what the string value evaluates to
in
       R.

       INPUT:
          var -- a string value -- a string

       EXAMPLES:
          sage: r.set('a', '2 + 3') sage: r.get('a') '[1] 5'


There should be interactive help (using ?) for most methods.  Anyway,
r([1,2,3]) probably doesn't evaluate to anything in R.

sage: r.set('y','c(1,2,3)')
sage: r.ls()
[1] "y"
sage: r.get('y')
'[1] 1 2 3'


Is this what you are thinking of?  Basically, one can either use
things like r.eval and r.set to do things in R, like so

sage:
r.eval('kruskal.test(list(c(18,16,14,9,7,2),c(17,15,12,11,10,1),c(13,8,6,5,4,3)))')
'\n\tKruskal-Wallis rank sum test\n\ndata:  list(c(18, 16, 14, 9, 7,
2), c(17, 15, 12, 11, 10, 1), c(13,      8, 6, 5, 4, 3)) \nKruskal-
Wallis chi-squared = 2.8421, df = 2, p-value = 0.2415\n'

but unfortunately not

sage: r.kruskal_test('[[18,11,7,6,5,1],[17,16,15,10,9,8],
[14,13,12,4,3,2]]')Error: object 'sage4' not found

even though many other r.method() things do work very nicely.  The
problem is that so much R stuff wants a 'c()'-style vector/list but
it's not always easy to figure out how to get the interface to accept
your input.  Keywords actually often work.

So I think that no one would disagree that the R integration is not
perfect yet.  You can use rpy, perhaps:

sage: from rpy2 import [tab]
rinterface         robjects           tests
rlike              rpy_classic        tests_rpy_classic

but this may not be what you are looking for either.

However, lots of stuff should work fairly well this way.  We would
welcome good examples of how to use the R interface more efficiently,
especially with other subsystems of Sage.  I have used R reasonably
well with the combinatorics facilities in Sage, for instance.

Thanks!

- kcrisman
> and there is no variable 'y' in R env. (using sage 4.4.2 here, was it
> fixed/added/changed later on?) - anyway, variable 'y' is inserted when
> I used:
>
> %r
> letSage <- function(variable,value) { .GlobalEnv[[variable]]<-value }
>
> def setR(var, val):
>     r.letSage('"%s"'%var, r(val))
>
> and called it with:
>
> setR('y', [1,2,3])
>
> so it still isn't what I look for, thout the "r(...)" for "val" helped
> to simplify it a lot. The r('var <- val') works, but requires to
> specify val as R code, so it's not best way I think. I'm looking for
> something you can pass list as argument, and preferably without r code
> and function above. The r.set if it worked would be nice I think :)
>
> cheers,
> Andrzej.
>
> On Sun, Jul 4, 2010 at 6:15 PM, Tim Joseph Dumol <t...@timdumol.com> wrote:
>
>
>
> > On Mon, Jul 5, 2010 at 12:13 AM, Tim Joseph Dumol <t...@timdumol.com> wrote:
> >> Hi Andrezj,
>
> >> On Sun, Jul 4, 2010 at 11:54 PM, Andrzej Giniewicz <ggi...@gmail.com> 
> >> wrote:
> >>> Hi,
>
> >>> recently I have given short introductory talk about Sage and questions
> >>> about integration with R arisen. Results of quickly put together code
> >>> is now athttp://sagenb.org/home/pub/2232/- especially, the question
> >>> was: "I have variable named x in R environment and want to get its
> >>> value, or variable named x inside Sage environment and push its value
> >>> into R, but keep the name." - what I was able to think about is quick
> >>> hack with .GlobalEnv of R, but is there better way to do what is
> >>> presented in the notebook linked above? Is there some syntax like
> >>> r["x"]=[1,2,3] or sth? If there is, I haven't noticed it yet - would
> >>> be thankful for hints.
>
> >>> Cheers,
> >>> Andrzej.
>
> >>> --
> >>> To post to this group, send email to sage-support@googlegroups.com
> >>> To unsubscribe from this group, send email to 
> >>> sage-support+unsubscr...@googlegroups.com
> >>> For more options, visit this group 
> >>> athttp://groups.google.com/group/sage-support
> >>> URL:http://www.sagemath.org
>
> >> This should do what you wanted:
>
> >> sage: r('x <- c(1,2,3)')
> >> [1] 1 2 3
> >> sage: r('x')
> >> [1] 1 2 3
> >> sage: sageobj(r('x')) # r('x').sage() works too
> >> [1, 2, 3]
> >> sage: r([1, 2, 3])
> >> [1] 1 2 3
>
> > Oh, and:
>
> > sage: r.set('y', r([1,2,3]))
> > sage: r('y')
> > [1] 1 2 3
>
> > Try:
>
> > sage: r.<TAB>
>
> > for more commands.
> >> ---
> >> Tim Joseph Dumol <tim (at) timdumol (dot) com>
> >>http://timdumol.com
>
> > --
> > Tim Joseph Dumol <tim (at) timdumol (dot) com>
> >http://timdumol.com
>
> > --
> > To post to this group, send email to sage-support@googlegroups.com
> > To unsubscribe from this group, send email to 
> > sage-support+unsubscr...@googlegroups.com
> > For more options, visit this group 
> > athttp://groups.google.com/group/sage-support
> > URL:http://www.sagemath.org

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to