Reputation: 331
I'm trying to graph the population growth in % from the population of each year. How would i do this in R?
My data looks like this:
Year Population
1960 10276477
1961 10483000
1962 10742000
. .
. .
. .
etc towards 2016
I've done:
Year <- Population$Year
Amount <- Population$Population
x=c(Year)
y=c(Amount)
plot(x,y)
Now i'm just wondering how to get the growth percentages and graphing that as well. Thanks!
Upvotes: 0
Views: 1794
Reputation: 80
The previous poster said it right, you really need to look into dplyr and ggplot2. This probably isn't as compact as it could be but I think it gets the job done...
library(tidyverse)
library(ggplot2)
library(lubridate)
Year <- seq(ymd("1960/1/1"), ymd("2016/1/1"), by = "years")
Population <- runif(length(Year), min = 100000, max = 10000000)
df <- data_frame(Year, Population)
df %>%
mutate(Previous_Year = lag(Population, 1), Change = Population - Previous_Year, Percent_Change = Change/Previous_Year*100) %>%
ggplot(aes(x = Year, y = Percent_Change)) +
geom_line() +
geom_smooth()
Basically the mutate call creates a new column, the lag offsets the population data by 1 row so you can do straightforward subtraction between the two, then you can divide them and multiply by 100
You can actually skip creating the "previous_year" column (for ex, Change = Population - lag(Population,1) but I separated the steps to show what's happening.
Upvotes: 2