I have a dataframe (df) in R with 7 columns
ID | Year1 | Year2 | Year3 | Size1 | Size2 | Size3 |
---|---|---|---|---|---|---|
A | 2021 | 2022 | NA | 10 | 15 | NA |
B | 2022 | 2023 | 2024 | 20 | 21 | 25 |
C | 2021 | 2022 | NA | 5 | 20 | NA |
I want to add an 8th column called ‘difference’ that gives me the growth rate for each individual, which would be (size 3 – size 1) / (year 3 – year 1). I was able to do that with this code:
df2 <- df %>%
mutate(difference = (df$Size3 -df$Size1)/(df$Year3 – df$Year1))
However, some individuals only have year 1 and year 2. How can I write a statement saying if Year3 = NA, then make the ‘difference’ column from (Size2 – Size1) / (Year2 – Year1)?
Desired output:
ID | Year 1 | Year 2 | Year 3 | Size 1 | Size 2 | Size 3 | Difference |
---|---|---|---|---|---|---|---|
A | 2021 | 2022 | NA | 10 | 15 | NA | 5 |
B | 2022 | 2023 | 2024 | 20 | 21 | 25 | 2.5 |
C | 2021 | 2022 | NA | 5 | 20 | NA | 15 |