[R-es] Ayuda con el bucle if
Gabriel Trujillo Paucar
gabriel_enter en hotmail.com
Jue Ene 24 21:58:31 CET 2013
Saludos una ultima pregunta, he creado una funcion en el bucle if la cual es:
#####################################
ABI <- function(x){
MIBpa <- x
turb1<-5*MIBpa[match("PTUR-001",row.names(MIBpa)),]
if(MIBpa[match("MGAS-001",row.names(MIBpa)),]==1||MIBpa[match("MGAS-002",row.names(MIBpa)),]==1){
Coc2=3} else {if(MIBpa[match("MGAS-001",row(MIBpa)),]==0&&MIBpa[match("MGAS-002",row.names(MIBpa)),]==0){
Coc2=0}}}
#####################################
y tengo mi matriz :
#####################################
a=data.frame(M1=c(1,0,0),row.names=c("PTUR-001","MGAS-001","MGAS-002"))
#####################################
Cuando corro la funcion con mi matriz "a" me sale el siguiente mensaje:
Error in if (MIBpa[match("MGAS-001", row(MIBpa)), ] == 0 && MIBpa[match("MGAS-002", :
missing value where TRUE/FALSE needed
No se donde estaria mi error, porque lo que deseo en el bucle if es que el objeto "Coc2" que crea me de valor de 3 cuando en el data.frame para la fila"MGAS-001" o "MGAS-002" tengan valor de 1 cualquiera de los dos y en el caso de que ambos sean ceros, el objeto "Coc2" me de un valor de "0".
Agradesco de antemano por su ayuda.
Gabriel Antonio Trujillo Paucar
Estudiante de Biologia
________________________________
> Date: Thu, 24 Jan 2013 07:40:08 +0000
> From: evapcastro en yahoo.es
> Subject: Re: [R-es] Ayuda con el bucle if
> To: jorgeivanvelez en gmail.com; gabriel_enter en hotmail.com
> CC: r-help-es en r-project.org
>
> Hola Gabriel,
>
> Después del "else" tiene que ir una asignación o un bloque, pero no
> puede ir directamente una condición, sin precederlo de un "if".
>
> Adapta tu ejemplo a esta estructura:
>
> if (a==1){
> b=2
> }else{if (a==2){
> b=3}
> }
>
> Es un modo de hacerlo.
>
> Saludos.
>
> --- El jue, 24/1/13, Gabriel Trujillo Paucar
> <gabriel_enter en hotmail.com> escribió:
>
> De: Gabriel Trujillo Paucar <gabriel_enter en hotmail.com>
> Asunto: [R-es] Ayuda con el bucle if
> Para: jorgeivanvelez en gmail.com
> CC: "r-help-es en r-project.org" <r-help-es en r-project.org>
> Fecha: jueves, 24 de enero, 2013 06:20
>
>
> Saludos nuevamente, estaba encontrando otra forma para poder encontrar
> la solucion al problema que escribi anteriormente y creo que la
> encontre solo que tengo un problema con el bucle if. Tengo un marco de
> datos como sigue:
>
> ######################################
>
> MIBpa=data.frame(M1=c(1,1,0),row.names=c("MGAS-001","MGAS-002","MGAS-003"))
>
> #########################################
>
> y he generado un bucle if
>
> ##################
>
> if(as.numeric(match("MGAS-001",row.names(MIBpa)))==1||as.numeric(match("MGAS-002",row.names(MIBpa)))==1){
> Coc2=3}
> else
> (as.numeric(match("MGAS-001",row.names(MIBpa)))==0||as.numeric(match("MGAS-002",row.names(MIBpa)))==0){
> Coc2=0}
>
> #######################
>
> Para que me dos resultados distintos (un "3" si se da la primera
> situacion y un "0" si se da la segunda) pero cuando corro el bucle me
> sale
> el siguiente mensaje:
>
> Error: inesperado 'else' en "else"
>
> NO se en que me estoy equivocando
>
>
>
>
>
>
>
> Gabriel Antonio Trujillo Paucar
> Estudiante de Biologia
> 997603768
>
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org<http:///mc/compose?to=R-help-es%40r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
Más información sobre la lista de distribución R-help-es