Learn R Programming

tcltk2 (version 1.2-11)

tclVarFun: Manipulate R variables and functions from tcl and back

Description

These functions are intended to provide a better "duality" between the name of variables in both R and tcl, including for function calls. It is possible to define a variable with the same name in R and tcl (the content is identical, but copied and coerced in the two respective environments). It is also possible to get the value of a tcl variable from R, and to call a R function from within tcl. These functionnalities are provided in the tcltk package, but Tcl variable usually have different internal names as R equivalents.

Usage

makeTclNames(names, unique = FALSE) tclFun(f, name = deparse(substitute(f))) tclGetValue(name) tclSetValue(name, value) tclVarExists(name) tclVarFind(pattern) tclVarName(name, init = "", keep.existing = TRUE)

Arguments

names
transform names so that they are valid for variables in Tcl.
unique
should these names be unique in the vector?
f
an R function. currently, do no support functions with arguments.
name
the name of a variable.
value
The value to place in a variable.
pattern
a pattern to search for.
init
initial value to use when creating the variable.
keep.existing
if the tcl variable already exist, should we keep its content?

Value

Most of these functions return a tclVar object.

Details

These functions are similar to tclVar() from package tcltk, except for the following change: here, it is possible to propose a name for the created tcl variable, or to set or retrieve the content of a tcl variable that is not mirrored in R.

See Also

tk2edit

Examples

Run this code
## Not run: 
# ## These cannot be run by examples() but should be OK when pasted
# ## into an interactive R session with the tcltk package loaded
# 
# ## Tcl functions and variables manipulation
# tclVarExists("tcl_version")
# tclVarExists("probably_non_existant")
# tclVarFind("tcl*")
# 
# ## Using tclVarName() and tclGetValue()...
# ## intented for better match between R and Tcl variables
# Test <- tclVarName("Test", "this is a test!")
# ## Now 'Test' exist both in R and in Tcl... In R, you need to use
# tclvalue(Test) # to retrieve its content
# ## If a variable already exists in Tcl, its content is preserved using
# ## keep.existing = TRUE
# 	
# ## Create a variable in Tcl and assign "just a test..." to it
# tclSetValue("A_Variable", "just to test...")
# ## Create the dual variable with same name
# A_Variable <- tclVarName("A_Variable", "something else?")
# tclvalue(A_Variable) # Content of the variable is not changed!
# 
# ## If you want to retrieve the content of a Tcl variable,
# ## but do not want to create a reference to it in R, use:
#     
# ## Create a Tcl variable, not visible from R
# tclSetValue("Another_Variable", 1:5)
# tclGetValue("Another_Variable") # Get its content in R (no conversion!)
# tclSetValue("Another_Variable", paste("Am I", c("happy", "sad"), "?"))
# tclGetValue("Another_Variable") # Get its content in R (no conversion!)
# ## End(Not run)

Run the code above in your browser using DataLab