Le vendredi 23 novembre 2012 à 03:17 +0100, vincent guyader a écrit :
> Hi everyone,
> 
> I made some tests with Rcmdr, to add a function with default parameters :
> 
> For example (very simple):
> 
> myfunction<-function(var="314"){
> print("hello")
> print(var)
> }
> 
> if I run myfunction() directly i see :
> 
> > myfunction()
> [1] "hello"
> [1] "314"
> 
> it's ok.
> 
> But if i edit de Rcmdr-menu.txt (in
> C:\Users\myname\Documents\R\win-library\2.15\Rcmdr\etc)
> and add :
> 
> menu    MyMenu        topMenu
> ""                                            ""
> ""          ""
> item    topMenu              cascade
> "MyTest"                                MyMenu             ""          ""
> item    MyMenu       command         "Test"
> myfunction                   ""          ""
> 
> and I put myfonction into a file Rcmdr-test.R in the same folder
> 
> I have a new button with a cascade menu, and myfunction is corectly
> sourced.. but :
> 
> 
> that's what append :
> 
> > library(Rcmdr)
> Loading required package: tcltk
> Loading Tcl/Tk interface ... done
> Loading required package: car
> Loading required package: MASS
> Loading required package: nnet
> Sourced: Rcmdr-test.r
> 
> 
> Rcmdr Version 1.9-2
> 
> If i use the Menu :
> 
> [1] "hello"
> [1] "%var"
> 
> ->there are %var instead off 314.
> > myfunction
> function(var="314"){
> print("hello")
> print(var)
> }
> 
> I think that I made a mistake but I dont know were. How can I use Rcmdr
> menu AND a default parameter ?
> 
> Can you help me?
I'm not sure how it's supposed to work in Rcmdr, but a very simple
workaround is to call from the menus a custom function defined like
this:
doMyfunction <- function() myfunction()

Another solution is to add "..." before "var" in the arguments list of
your function. That way, the first argument passed by Rcmdr will not
incorrectly be matched to "var".
myfunction <- function(..., var="314"){
    print("hello")
    print(var)
}


My two cents

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to