Hola,
Por si a alguien le sirve, he encontrado una posible soluci�n a la duda que me
planteaba en este mismo hilo el pasado 1 de febrero:
par(mfrow = c(2, 1), las = 1)
for(i in 1:length(unique(dt$id))) {
kat <- factor(dt$id, labels = 1:length(unique(dt$id)))
maxid <- max(table(dt$id))
plot(seq(from = min(dt$edad[kat == i]), to = max(dt$edad[kat == i])),
dt$valor[kat == i],
pch = 16, xaxt = "n", xlab ="", ylab = "", main = "",
xlim = c( min(dt$edad[kat == i]) , min(dt$edad[kat == i]) + maxid - 1 ),
ylim = c(0, max(dt$valor)))
axis(1, at = seq(from = min(dt$edad[kat == i]), to = min(dt$edad[kat == i]) +
maxid - 1))
mtext("edad", side = 1, line = 2.5)
mtext(bquote(.(unique(dt$id)[i])), side = 3, line = 0.5)
}
Saludos.
________________________________
De: Francisco Javier <[email protected]>
Enviado: mi�rcoles, 01 de febrero de 2017 20:25
Para: [email protected]
Asunto: Perfiles longitudinales con eje de abscisas adaptado a cada individuo
Buenas tardes a todo el mundo,
Sirva como ejemplo el siguiente data frame con datos longitudinales de 2
individuos:
dt <- data.frame(id = rep(c(1,2), c(3,5)),
edad = c(50,51,52,43,44,45,46,47),
valor = c(220,450,540,320,570,200,700,100))
Querr�a representar (sin recurrir a ning�n package) el perfil de los 2
individuos de modo que en cada eje de abscisas:
a) La primera edad de cada individuo es su primera edad con valor (edades
enteras anuales).
b) Para cada id hayan el mismo n�mero de ticks, que ser� igual al n�mero de
mediciones del individuo con m�s valores (id=2 con 5 valores)
El c�digo siguiente hace "casi" lo que deseo, pero el inconveniente es que el
eje de abscisas que queda escrito siempre va desde 1 hasta 5, y lo
que querr�a es que en id=1 fuese {50,51,52,53,54} (aunque no haya datos en las
edades 53 y 54), mientras que en id=2 deber�a de poner {43,44,45,46,47}.
par(mfrow = c(2, 1), las = 1)
for(i in 1:length(unique(dt$id))) {
kat <- factor(dt$id, labels = 1:length(unique(dt$id)))
plot(dt$valor[kat == i],
pch = 16, xaxt = "n", xlab ="", ylab = "", main = "",
xlim = c(1, max(table(dt$id))), ylim = c(0, max(dt$valor)))
axis(1, at = 1:max(table(dt$id)))
mtext("edad", side = 1, line = 2.5)
mtext( bquote( .(unique(dt$id)[i])), side = 3, line = 0.5)
}
[[elided Hotmail spam]]
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es