[R-es] función cantidad mayor de valores

javier.ruben.marcuzzi en gmail.com javier.ruben.marcuzzi en gmail.com
Mar Jul 28 18:21:33 CEST 2015


Estimados




Muchas gracias a ambos, la solución de Daniel Merino funciona, pero como el mismo dice debería haber otra forma optimizada, y la de Jorge I Velez está optimizada.




Utilizando ambas en mis datos, la de Daniel en media hora no termina de procesar, la de Jorge en segundos da un resultado.




Hoy  a la mañana se me ocurrió usar dplyr, posiblemente en ese enfoque ambas den resultado en tiempos razonables, pero aún no lo se, tengo que intentarlo.




Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario





De: Jorge I Velez
Enviado el: ‎martes‎, ‎28‎ de ‎julio‎ de ‎2015 ‎10‎:‎13‎ ‎a.m.
Para: Javier Ruben Marcuzzi
CC: Carlos Ortega, Susana deus alvarez, R-help-es en r-project.org, daniel






Hola Javier,




Intenta los siguientes cambios





g4 <- function(codigo_llega, n_caracteres){

  codigo_llega <- as.character(codigo_llega)

  if(n_caracteres == 6) res <- substr(codigo_llega, start=0, stop=4)

  else res <- codigo_llega

  res

}

g4 <- Vectorize(g4)

x <- c('Jorge Velez','Javier Marcuzzi','Daniel Merino','Susana deus Alvarez', 'Carlos Ortega')  

g4(x, 6)

g4(x, 4)




Saludos cordiales,

Jorge.-
































2015-07-28 13:08 GMT+10:00 <javier.ruben.marcuzzi en gmail.com>:

Señores



Tengo un problema, donde use distintas alternativas y el informe de error es el mismo.



Mi ultima alternativa es una función que copio y pego junto con un ejemplo de uso.

> g3 <- function(n_caracteres, codigo_llega){
+   if (n_caracteres == 6)
+   {
+     res <- substr(codigo_llega, start=0, stop=4)
+   }
+   else
+   {
+     res <- codigo_llega
+   }
+   res
+ }
> g3(6,"Javier Marcuzzi")
[1] "Javi"

Pero cuándo uso los datos reales, el mensaje de error es el siguiente (copio y pego lo último que se ve junto con el mensaje)


[9989] QS01EE01 QS01EE02 QS01EE03 QS01EE04 QS01EE05 QS       QS01     QS01E    QS01EX   QS01EX01 QS01EX02
[10000] QS
 [ reached getOption("max.print") -- omitted 846 entries ]
7148 Levels: QA QA01 QA01A QA01AA QA01AA01 QA01AA02 QA01AA03 QA01AA04 QA01AA30 QA01AA51 QA01AB ... QV10XX03
Warning message:
In if (n_caracteres == 4) { :
  the condition has length > 1 and only the first element will be used


¿Alguna idea sobre ese mensaje, aparentemente hasta el elemento 10.000 funciona, luego tengo un problema (con la función que envío como con otras alternativas)








Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario
        [[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
	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es