[R-es] Representar datos longitudinales mediante splines

Javier Marcuzzi javier.ruben.marcuzzi en gmail.com
Vie Mar 4 11:59:57 CET 2016


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: r-help-es en r-project.org
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 <iterador10 en hotmail.com> 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
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es




-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160304/bc25a812/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: C4E01478BC0E41A8BB6022C41BC68DDF.png
Type: image/png
Size: 18141 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20160304/bc25a812/attachment-0001.png>


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