How Do I sum up all the values in 'exports' and 'imports' of all countries by year?
data frame :
| Country | Year | exports | imports |
|---|---|---|---|
| Denmark | 2004 | 10000000 | 10000000 |
| Denmark | 2008 | 20000000 | 20000000 |
| Denmark | 2009 | 30000000 | 30000000 |
| Norway | 2004 | 10000000 | 10000000 |
| Norway | 2008 | 20000000 | 20000000 |
| Norway | 2009 | 10000000 | 30000000 |
I tried:
df_frame %>%
group_by(Year) %>%
summarize(
total_exports = sum(exports),
total_imports = sum(imports)
)
But I got:
| Year | exports | imports |
|---|---|---|
| 2004 | NA | NA |
| 2008 | NA | NA |
| 2009 | NA | NA |
I want:
| Year | exports | imports |
|---|---|---|
| 2004 | 40000000 | 20000000 |
| 2008 | 40000000 | 40000000 |
| 2009 | 20000000 | 60000000 |
CodePudding user response:
We could group and then use summarise with across:
library(dplyr)
df %>%
group_by(Year) %>%
summarise(across(-Country, sum))
Year exports imports
<int> <int> <int>
1 2004 20000000 20000000
2 2008 40000000 40000000
3 2009 40000000 60000000
CodePudding user response:
If you use the sum() function and your data.frame has missing values (e.g. NA), you have to pass the argument na.rm = TRUE in the sum() function call. Then your code above will work.
