[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