[Rd] Memcheck: error in a switch using getGraphicsEvent
Christophe Genolini
cgenolin at u-paris10.fr
Fri Mar 21 11:47:37 CET 2014
Le 21/03/2014 01:45, Duncan Murdoch a écrit :
> On 2014-03-20, 8:02 PM, Christophe Genolini wrote:
>> Hi the list,
>>
>> One of my package has an (other) error detected by memtest that I do not manage to understand.
>> Here is the message that I get from Memtest
>>
>> --- 8< ----------------
>> > try(choice(cld1))
>> Error in switch(EXPR = choix, Up = { : EXPR must be a length 1 vector
>> --- 8< ----------------
>>
>> The choice function does call the choiceChangeParam function, which is:
>>
>> --- 8< ----------------
>> choiceChangeParam <- function(paramChoice){
>>
>> texte <- paste(" ~ Choice : menu ~\n",sep="")
>>
>> choix <- getGraphicsEvent(texte,onKeybd=function(key){return(key)})
>> switch(EXPR=choix,
>> "Up" = {
>> if(xy[1]>1){
>> paramChoice['toDo'] <- "xy"
>> xy[2]<-1
>> xy[1]<-xy[1]-1
>> paramChoice['xy']<-xy
>> }else{paramChoice['toDo'] <- ""}
>> },
>> "Down" = {
>> if(xy[1]<nrow(paramChoice['critMatrix'])){
>> paramChoice['toDo'] <- "xy"
>> xy[2]<-1
>> xy[1]<-xy[1]+1
>> paramChoice['xy']<-xy
>> "d" = {
>> paramChoice['toDo'] <- "changeCriterion"
>> paramChoice['critRank'] <- (paramChoice['critRank']%%length(CRITERION_NAMES)) + 1
>> },
>> "c" = {
>> paramChoice['toDo'] <- "order"
>> },
>> default={}
>>
>> )
>> return(paramChoice)
>> }
>> --- 8< ----------------
>>
>> choix is a character of lenght 1 since getGraphicsEvent return a character, am I wrong?
>>
>
> It can also return NULL, but to be sure, why not print the value?
>
> Duncan Murdoch
>
>
Thanks for your answer. According to your suggestion, I add the line "cat" between the two other lines:
--- 8< -----------------
....
choix <- getGraphicsEvent(texte,onKeybd=function(key){return(key)})
cat("Choix : ",choix," class :",class(choix)," length :",length(choix),"\n")
switch(EXPR=choix,
....
--- 8< -----------------
I then make several attempts. In all the cases, the length of choix is 1:
--- 8< ------------------
~ Choice : menu ~
Choix : Down class : character length : 1
~ Choice : menu ~
Choix : Up class : character length : 1
~ Choice : menu ~
Choix : e class : character length : 1
~ Choice : menu ~
Choix : , class : character length : 1
~ Choice : menu ~
Choix : class : character length : 1
~ Choice : menu ~
Choix : 9 class : character length : 1
~ Choice : menu ~
Choix : ctrl-I class : character length : 1
~ Choice : menu ~
Choix : ² class : character length : 1
~ Choice : menu ~
Choix : ctrl-J class : character length : 1
--- 8< ---------------------
--
Christophe Genolini
Maître de conférences en bio-statistique
Université Paris Ouest Nanterre La Défense
INSERM UMR 1027
More information about the R-devel
mailing list