if (require(wpp2019)==FALSE) { install.packages("wpp2019", dep=TRUE) library(wpp2019) } if (require(pyramid)==FALSE) { install.packages("pyramid", dep=TRUE) library(pyramid) } data(popM) data(popF) # For R-4.0.0, variable name should be changed to factor popM$name <- as.factor(popM$name) popF$name <- as.factor(popF$name) countries <- levels(popM$name) COUNTRIES <- select.list(countries, title="Select country/region(s)", multiple=TRUE) YEARS <- select.list(sprintf("%d",1950+0:14*5), title="Select year(s)", multiple=TRUE) trux <- function(X) { SC <- 10^as.integer(log10(X)-1) MX <- (X %/% (6*SC))*SC*2 return(0:4*MX) } NC <- length(COUNTRIES) NY <- length(YEARS) INC <- NC %/% 6 JNC <- NC %% 6 INY <- NY %/% 8 JNY <- NY %% 8 if (INC+INY < 1) { layout(matrix(1:(JNC*JNY), JNY, JNC)) for (COUNTRY in COUNTRIES) { for (YEAR in YEARS) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } } else if (INC==0) { layout(matrix(1:(JNC*7), 7, JNC)) for (k in 1:INY) { for (COUNTRY in COUNTRIES) { for (YEAR in YEARS[((k-1)*7+1):((k-1)*7+7)]) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } readline("press return if ready...") } layout(matrix(1:(JNC*JNY), JNY, JNC)) for (COUNTRY in COUNTRIES) { for (YEAR in YEARS[(INY*7+1):(INY*7+JNY)]) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } } else if (INY==0) { layout(matrix(1:(5*JNY), JNY, 5)) for (k in 1:INC) { for (COUNTRY in COUNTRIES[((k-1)*5+1):((k-1)*5+5)]) { for (YEAR in YEARS) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } readline("press return if ready...") } layout(matrix(1:(JNC*JNY), JNY, JNC)) for (COUNTRY in COUNTRIES[((INC-1)*5+1):((INC-1)*5+JNC)]) { for (YEAR in YEARS) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } } else { layout(matrix(1:35, 7, 5)) for (j in 1:INY) { for (k in 1:INC) { for (COUNTRY in COUNTRIES[((k-1)*5+1):((k-1)*5+5)]) { for (YEAR in YEARS[((j-1)*7+1):((j-1)*7+7)]) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } readline("press return if ready...") } layout(matrix(1:(JNC*7), 7, JNC)) for (COUNTRY in COUNTRIES[((INC-1)*5+1):((INC-1)*5+JNC)]) { for (YEAR in YEARS[((j-1)*7+1):((j-1)*7+7)]) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } readline("press return if ready...") } layout(matrix(1:(JNC*JNY), JNY, JNC)) for (COUNTRY in COUNTRIES[((INC-1)*5+1):((INC-1)*5+JNC)]) { for (YEAR in YEARS[((INY-1)*7+1):((INY-1)*7+JNY)]) { MP <- subset(popM, name==COUNTRY)[, c("age", YEAR)] FP <- subset(popF, name==COUNTRY)[, c("age", YEAR)] POP <- data.frame(M=MP[, YEAR], F=FP[, YEAR], A=MP$age) pyramid(POP, Laxis=pretty(c(0,max(c(POP$M, POP$F)))), Cadj=-0.01, Cgap=0.2, AxisFM="d", Llab="Males (x1000)", Rlab="Females (x1000)", Lcol="blue", Rcol="red", main=paste("Population of",COUNTRY,"in",YEAR,"(wpp2019)",sep=" ")) } } }