[R-es] usar un for para cambiar indice
Estimado Sebatian,
Si quieres tener todos los gráficos en un solo plot, me parece mejor
opción matplot que sugirió Jorge.
Ahora que, viendo que dices tener los datos en una lista (PPcapita es
una lista) y querer usar un for, te doy la siguiente alterantiva.
Tiempo <- seq(1:100)
plot(Tiempo, PP$"Serie 1", type="l",col="1")
for(i in 2:10){
#construyes el nombre de la serie ("Serie $i")
serieName <- paste("Serie", i)
#pintas la curva
lines(times,PPcapita[[serieName]], col=i)
}
Espero que te sirva.
Un saludo,
*Luisfo Chiroque*
/PhD Student | PhD Candidate
IMDEA Networks Institute/
http://fourier.networks.imdea.org/people/~luis_nunez/
<http://fourier.networks.imdea.org/people/%7Eluis_nunez/>
On 09/06/2016 10:37 PM, Carlos Ortega wrote:
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