Buen día a todos el problema que tengo es el siguiente: tengo una matriz 0 0 0 1 5 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 6 0 0 0 0 0 0 0 0 0 1 4 0 1 0 7 2 9 0 1 necesito hacer el primer conteo de números hasta que encuentre el primer cero. para la fila 1: tiene 1 y 5 son dos elementos fila 2: solo tiene 1 elemento fila 3: tiene 1 fila 4: 1 y 6 dos elementos fila 5: no tiene elementos distintos de cero=0 fila 6: tiene como primera racha 1 y 4 osea dos elementos fila 7: tiene 3 elementos en su primera racha me gustaría saber si el R tiene un comando que me haga dichos conteos. Ó una forma de cómo poder hacer estos conteos. Gracias por su atención -- Carlos Mauricio Camelo Charry [[alternative HTML version deleted]]
Buenas noches Carlos, Dale una mirada a la funcion rle(). Quizas lo siguiente puede darte alguna idea. Desafortunadamente fallo en la ultima fila :) # x is tu matriz de datos res <- apply(x, 1, function(x){ r <- rle(x)$values if(sum(r!=0)) res <- sum(r!=0) else res <- 0 res } ) res # [1] 2 1 1 2 0 3 4 Saludos, Jorge Ivan Velez 2010/5/3 Carlos Mauricio camelo charry <>> Buen día a todos > el problema que tengo es el siguiente: > tengo una matriz > > 0 0 0 1 5 0 > 0 0 0 0 0 1 > 0 1 0 0 0 0 > 0 0 0 1 6 0 > 0 0 0 0 0 0 > 0 0 1 4 0 1 > 0 7 2 9 0 1 > necesito hacer el primer conteo de números hasta que encuentre > el primer cero. > para la fila 1: tiene 1 y 5 son dos elementos > fila 2: solo tiene 1 elemento > fila 3: tiene 1 > fila 4: 1 y 6 dos elementos > fila 5: no tiene elementos distintos de cero=0 > fila 6: tiene como primera racha 1 y 4 osea dos elementos > fila 7: tiene 3 elementos en su primera racha > > > me gustaría saber si el R tiene un comando que me haga dichos conteos. Ó > una > forma de cómo poder hacer estos conteos. > > > Gracias por su atención > > -- > Carlos Mauricio Camelo Charry > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Carlos Fijate con esta función lookforKones<-function(test) { I1=seq(1,length(test),1)[test==0] m=((I1[2:length(I1)]-I1[1:length(I1)])-1) sum(m*(m>=1))+(test[length(test)]>=1) } #EJEMPLO M=matrix(c( 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 1, 0, 7, 2, 9, 0, 1),byrow=TRUE,ncol=6) apply(M,1,lookforKones) Prof. Julio Di Rienzo Estadística y Biometría FCA- U.N. Córdoba IBS CC Member http://sites.google.com/site/juliodirienzo "Biometry, the active pursuit of biological knowledge by quantitative methods." (R.A. Fisher, 1948) 2010/5/3 Carlos Mauricio camelo charry <mauro8824@gmail.com>> Buen día a todos > el problema que tengo es el siguiente: > tengo una matriz > > 0 0 0 1 5 0 > 0 0 0 0 0 1 > 0 1 0 0 0 0 > 0 0 0 1 6 0 > 0 0 0 0 0 0 > 0 0 1 4 0 1 > 0 7 2 9 0 1 > necesito hacer el primer conteo de números hasta que encuentre > el primer cero. > para la fila 1: tiene 1 y 5 son dos elementos > fila 2: solo tiene 1 elemento > fila 3: tiene 1 > fila 4: 1 y 6 dos elementos > fila 5: no tiene elementos distintos de cero=0 > fila 6: tiene como primera racha 1 y 4 osea dos elementos > fila 7: tiene 3 elementos en su primera racha > > > me gustaría saber si el R tiene un comando que me haga dichos conteos. Ó > una > forma de cómo poder hacer estos conteos. > > > Gracias por su atención > > -- > Carlos Mauricio Camelo Charry > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Hola: te sirve M=matrix(c( 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 1, 0, 7, 2, 9, 0, 1),byrow=TRUE,ncol=6) rowSums(M!=0) Gabriela ______________________________ Lic. María Gabriela Cendoya Magíster en Biometría Profesor Adjunto Cátedra de Estadística y Diseño Facultad de Ciencias Agrarias Universidad Nacional de Mar del Plata ______________________________ ----- Original Message ----- From: "Carlos Mauricio camelo charry" <mauro8824 en gmail.com> To: <r-help-es en r-project.org> Sent: Monday, May 03, 2010 11:55 PM Subject: [R-es] Contar rachas en una matriz Buen día a todos el problema que tengo es el siguiente: tengo una matriz 0 0 0 1 5 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 6 0 0 0 0 0 0 0 0 0 1 4 0 1 0 7 2 9 0 1 necesito hacer el primer conteo de números hasta que encuentre el primer cero. para la fila 1: tiene 1 y 5 son dos elementos fila 2: solo tiene 1 elemento fila 3: tiene 1 fila 4: 1 y 6 dos elementos fila 5: no tiene elementos distintos de cero=0 fila 6: tiene como primera racha 1 y 4 osea dos elementos fila 7: tiene 3 elementos en su primera racha me gustaría saber si el R tiene un comando que me haga dichos conteos. Ó una forma de cómo poder hacer estos conteos. Gracias por su atención -- Carlos Mauricio Camelo Charry [[alternative HTML version deleted]] -------------------------------------------------------------------------------- _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ___________________________________________________________________________ Aviso: ==== El contenido del presente e-mail y sus posibles adjuntos pertenecen al INTA y pueden contener información confidencial. Si usted no es el destinatario original de este mensaje y por este medio pudo acceder a dicha información, por favor solicitamos contactar al remitente y eliminar el mensaje de inmediato. Se encuentra prohibida la divulgación, copia, distribución o cualquier otro uso de la información contenida en el presente e-mail por parte de personas distintas al destinatario. This e-mail contents and its possible attachments belong to INTA and may contain confidential information. If this message was not originally addressed to you, but you have accessed to such information by this means, please contact the sender and eliminate this message immediately. Circulation, copy, distribution, or any other use of the information contained in this e-mail is not allowed on part of those different from the addressee. Antes de imprimir este mensaje, asegúrese de que sea necesario. Proteger el medio ambiente está también en su mano.
Hola de nuevo: leí muy rápido el mensaje y la solución no es correcta, si ahora entendí bien tu pregunta, quieres determinar el número de elementos distintos de cero en la primer racha distinta de cero, entonces quizas esta sí sea la respuesta usando la misma matriz M mlogi <- M!=0 nelem <- rowSums( mlogi) for(i in 1:length(nelem )){ if (nelem [i]>1){ nelem [i] <- sum(( mlogi)[i,1:which.min(diff(( mlogi)[i,]))]) }} nelem Gabriela ______________________________ Lic. María Gabriela Cendoya Magíster en Biometría Profesor Adjunto Cátedra de Estadística y Diseño Facultad de Ciencias Agrarias Universidad Nacional de Mar del Plata ______________________________ ----- Original Message ----- From: "Carlos Mauricio camelo charry" <mauro8824 en gmail.com> To: <r-help-es en r-project.org> Sent: Monday, May 03, 2010 11:55 PM Subject: [R-es] Contar rachas en una matriz Buen día a todos el problema que tengo es el siguiente: tengo una matriz 0 0 0 1 5 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 6 0 0 0 0 0 0 0 0 0 1 4 0 1 0 7 2 9 0 1 necesito hacer el primer conteo de números hasta que encuentre el primer cero. para la fila 1: tiene 1 y 5 son dos elementos fila 2: solo tiene 1 elemento fila 3: tiene 1 fila 4: 1 y 6 dos elementos fila 5: no tiene elementos distintos de cero=0 fila 6: tiene como primera racha 1 y 4 osea dos elementos fila 7: tiene 3 elementos en su primera racha me gustaría saber si el R tiene un comando que me haga dichos conteos. Ó una forma de cómo poder hacer estos conteos. Gracias por su atención -- Carlos Mauricio Camelo Charry [[alternative HTML version deleted]] -------------------------------------------------------------------------------- _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ___________________________________________________________________________ Aviso: ==== El contenido del presente e-mail y sus posibles adjuntos pertenecen al INTA y pueden contener información confidencial. Si usted no es el destinatario original de este mensaje y por este medio pudo acceder a dicha información, por favor solicitamos contactar al remitente y eliminar el mensaje de inmediato. Se encuentra prohibida la divulgación, copia, distribución o cualquier otro uso de la información contenida en el presente e-mail por parte de personas distintas al destinatario. This e-mail contents and its possible attachments belong to INTA and may contain confidential information. If this message was not originally addressed to you, but you have accessed to such information by this means, please contact the sender and eliminate this message immediately. Circulation, copy, distribution, or any other use of the information contained in this e-mail is not allowed on part of those different from the addressee. Antes de imprimir este mensaje, asegúrese de que sea necesario. Proteger el medio ambiente está también en su mano.