Estimado Carlos y Francisco El lowess no es spline http://www.inside-r.org/r-doc/stats/lowess.
Por la pregunta yo pensé en algo como muchos sujetos con medidas de peso corporal a lo largo del tiempo relacionado a dietas distintas, esa fue mi analogía mental para mi respuesta anterior, donde spline se encuentra dentro de las funciones de ajuste posible. Javier Rubén Marcuzzi De: Carlos Ortega Enviado: viernes, 4 de marzo de 2016 3:27 Para: Francisco Javier CC: [email protected] Asunto: Re: [R-es] Representar datos longitudinales mediante splines Hola, El suavizado con "lowess()" te da error: > for(i in unique(df$id)) { + lines(lowess(df$x[df$id == i], df$y[df$id == i], col = df$id)) } Error in lowess(df$x[df$id == i], df$y[df$id == i], col = df$id) : unused argument (col = df$id) Y el mensaje de error es bastante explícito. Incluyes el parámetro "col" dentro de lowess que no lo considera. Es un simple problema de dónde has colocado un paréntesis de cierre. Así sí que funciona (destaco en rojo la posición del paréntesis de cierre): #----------------- for(i in unique(df$id)) { lines(lowess(df$x[df$id == i], df$y[df$id == i]), col = df$id) } points(x = df$x, y = df$y, pch=16, col = df$id) # Los datos asociados a cada id con un color de referencia title("Scatter Plot of value vs. time") #----------------- Saludos, Carlos Ortega www.qualityexcellence.es El 3 de marzo de 2016, 21:35, Francisco Javier <[email protected]> escribió: Buenas noches a todos, Me dirijo a vosotros porque estoy trabajando con medidas repetidas sobre un grupo de sujetos y quisiera graficar la evolución temporal de cada uno de ellos pero suavizada mediante un spline (o en su defecto algún tipo de línea suavizadora que no necesariamente tenga que pasar por los puntos de cada sujeto). Además, quisiera hacerlo en R básico, esto es, sin recurrir al uso de paquetes adicionales tipo lattice, ggplot2. A modo de ejemplo, tengo el siguiente data frame: df <- data.frame( id = factor(rep(c(1,2,3), c(3,4,3))), x = c( 1, 14, 22, 2, 9, 20, 25, 4, 15, 22), y = c(35, 28, 52, 79, 64, 70, 95, 45, 102, 105)) E intento (sin conseguir resultado): plot(df$x, df$y, xlab = "time", ylab="value", type="n", xlim = c(0,25), ylim=c(20,120)) for(i in unique(df$id)) { lines(lowess(df$x[df$id == i], df$y[df$id == i], col = df$id)) } points(x = df$x, y = df$y, pch=16, col = df$id) # Los datos asociados a cada id con un color de referencia title("Scatter Plot of value vs. time") ¡Muchas gracias por cualquier ayuda al respecto! Francisco [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es
_______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
