[Rd] accessing tcl variables within R and tcl
Peter Dalgaard
pdalgd at gmail.com
Thu Aug 12 21:04:07 CEST 2010
Adrian Waddell wrote:
> Dear R users,
>
> I have some troubles with dealing with tclObj objects. I try to explain
> it with a toy example:
>
> Say I define the following tcl procedure which just prints out each list
> element
>
> library(tcltk)
> .Tcl('proc test {myList} {
> foreach i $myList {
> puts stdout $i
> }
> }')
>
> and I call it with:
>
>> tcl('test',letters[1:5]) # Works as expected
>
> Now say I define a tcl variable first:
>
>> a <- tclVar("")
>> tclObj(a) <- as.tclObj(letters[1:5])
>
>> tcl('set',a) # output list
>
> However
>
>> tcl('test',a) # does not work as expected, returns the variable name
>
> Why not? In fact, how do get the name of the "a" list in tcl (something
> like RTcl...) so I could use it as follows
>> .Tcl('test $RTcl1') #works
>
> Loops are much quicker in tcl than in R, hence I try to do some
> computations in tcl and not via wrapper function in R. I therefore need
> a way to easily access tcl variables from within R and tcl.
>
> Thanks for any help,
Ow, that's been a while... However
tcl('test', tclvalue(a))
seems to do the trick, as does
tcl('test', tclObj(a))
The latter presumably being preferable, since it avoids conversion to
and from an R object.
If I remember these matters correctly, you are seeing the difference
between "set RTcl1" and "test $RTcl1".
--
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Phone: (+45)38153501
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-devel
mailing list