Obrigado pelas respostas Cesar e Gustavo.
O código a ser portado é basicamente este mesmo, só que o original tem mais linhas. Os valores inteiros possíveis de AG vão de 0 até 28 e não até 10 e os casos possíveis são 8 e não 4, como escrevi no exemplo.
Eu havia chegado ao if e ao switch também, mas não consegui pensar em como utilizá-lo de forma mais "limpa" neste caso.
switch (statement, list)
O statement seria as.interger(AG) (+1 por que meu primeiro valor é 0)
Mas como eu atribuiria, utilizando este comando, o valor 37 à variável VAR caso os valores inteiros de AG fossem 0, 5, 8 ou 10?
switch (as.interger(AG)+1, VAR<-37,VAR<-70,VAR<-112,VAR<-90, ....)
Neste caso a lista de VAR<- valor teria 29 posições (0 a 28). Com o case posso agrupar os valores de cada caso.
Em outra lista tive uma resposta interessante. A função recode do pacote car.
AG<-2.7
VAR<-recode(as.integer(AG),"c(0,5,8,10)=37;c(1,4)=70;c(3,6,9)=90;c(2,7)=112")
VAR
[1] 112
Bem mais limpo, não?
Mais uma vez obrigado
Antônio
PS. eu não envio o mesmo e-mail para listas diferentes. No entanto hoje ao enviar a mensagem para a r-help@r-project.org recebi uma mensagem estranha, que nunca havia recebido. Minha mensagem necessitaria da aprovação do moderador. Segui o link indicado e cancelei a mensagem, mas mesmo assim ela foi postada lá.
Em 31/8/2011 14:24, Antonio Silva escreveu:Antonio,
Olá,
Estou passando para R uma rotina em visual basic.
No R, qual o comando mais similar ao"select case" do VB?
Por exemplo:
select case int(AG)
case 0, 5, 8, 10
VAR = 37
case 1, 4
VAR = 70
case 3, 6, 9
VAR = 90
case 2, 7
VAR = 112
end select
Imagino que o código acima seja somente um exemplo e não o código a efetivamente ser portado, pois nesse caso a alternativa seria usar um vetor com a posição escolhida por AG.
Para caso mais geral, veja se o 'switch' da lingugem R lhe serve: http://cran.r-project.org/doc/manuals/R-lang.html#switch
--
Cesar Rabak
GNU/Linux User 52247.
Get counted: http://counter.li.org/
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.