[R-es] usar un for para cambiar indice

Carlos Ortega cof en qualityexcellence.es
Mar Sep 6 22:37:21 CEST 2016


Hola,

La forma en la que lo has planteado no va a funcionarte porque usas
*PPcapita$"Serie
i"* y esto supone una evaluación "en caliente" de un literal. La forma de
hacerlo con un bucle es referenciar la columna de la serie a
representar *PPcapita[,
i]*.

Y por otro lado si quieres todos los gráficos agrupados, has de
utilizar *par(mfrow
= c(nrows, ncols)) *antes de pintar nada.

Quedando así:

#--------------
PPcapita <- as.data.frame(matrix( rnorm(100 * 10), ncol = 10))

Tiempo <- 1:100
par(mfrow = c(2,5))
for( i in 1:ncol(PPcapita)) {
  plot(Tiempo, PPcapita[, i])
}
#--------------

Y vectorizado, una forma de hacerlo es esta.

#--------------
PPcapita <- as.data.frame(matrix( rnorm(100 * 10), ncol = 10))

Tiempo <- 1:100
par(mfrow = c(2,5))

apply(PPcapita, 2, function(x) {plot(Tiempo, x)})
#--------------

Saludos,
Carlos Ortega
www.qualityexcellence.es


El 6 de septiembre de 2016, 20:49, Jorge I Velez <jorgeivanvelez en gmail.com>
escribió:

> Es más fácil si usas matplot.  Mira ?matplot para más información.  Saludos
> cordiales.   --JIV
>
>
> 2016-09-06 13:48 GMT-05:00 Sebastian Kruk <residuo.solow en gmail.com>:
>
> > Estimados usuarios-de-R:
> >
> > Tengo un problema.
> >
> > Si por ejemplo tengo una lista conformada por la serie historia del PBI
> de
> > 10 paìses.
> >
> > >Tiempo <- seq(1:100)
> > >plot(Tiempo, PP$"Serie 1", type="l",col="1")
> > >lines(Tiempo, PPcapita$"Serie 2")
> > >lines(Tiempo, PPcapita$"Serie 3")
> > >lines(Tiempo, PPcapita$"Serie 4")
> > >lines(Tiempo, PPcapita$"Serie 5")
> > >lines(Tiempo, PPcapita$"Serie 6")
> > >lines(Tiempo, PPcapita$"Serie 7")
> > >lines(Tiempo, PPcapita$"Serie 8")
> > >lines(Tiempo, PPcapita$"Serie 9")
> > >lines(Tiempo, PPcapita$"Serie 10")
> >
> > ¡Y quiero usar un for para lo anterior o vectorizar como lo hago?
> >
> > Me da error hacer lo siguiente:
> >
> > Tiempo <- seq(1:100)
> > plot(Tiempo, PP$"Serie 1", type="l",col="red")
> > for (i in 2:10) {lines(Tiempo, PPcapita$"Serie i",col=i)
> >
> > ¿Hay alguna forma de resolverlo?
> >
> > Saludos,
> >
> > Sebas.
> >
> >         [[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]]
>
> _______________________________________________
> 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

	[[alternative HTML version deleted]]



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