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

Responder a