I'm trying to use pivot_wider to get a binary result for each country in each year between 1991 - 1995 like this table:
+------+-------+--------+--------+
| year | USA | Israel | Sweden |
| 1991 | FALSE | TRUE | TRUE |
| 1992 | FALSE | FALSE | TRUE |
| 1993 | FALSE | TRUE | TRUE |
| 1994 | FALSE | FALSE | TRUE |
| 1995 | TRUE | TRUE | TRUE |
+------+-------+--------+--------+
Of course, any binary indication will be great, besides true/false.
However, my data frame looks like:
country = c("Sweden", "Sweden", "Sweden", "Sweden", "Sweden", "Israel", "Israel",
"Israel", "USA")
year = c(1991,1992,1993,1994,1995,1991,1993,1995,1995)
df = as.data.frame(cbind(year,country))
df
+---------+------+
| country | Year |
| Sweden | 1991 |
| Sweden | 1992 |
| Sweden | 1993 |
| Sweden | 1994 |
| Sweden | 1995 |
| Israel | 1991 |
| Israel | 1993 |
| Israel | 1995 |
| USA | 1995 |
+---------+------+
I tried the following code and obtained the result below which is not what I'm looking for
library(dplyr)
df2 = df %>%
group_by(country) %>%
mutate(row = row_number()) %>%
pivot_wider(names_from = country, values_from = year) %>%
select(-row)
df2
+------+--------+--------+
| USA | Israel | Sweden |
| 1995 | 1991 | 1991 |
| NA | 1993 | 1992 |
| NA | 1995 | 1993 |
| NA | NA | 1994 |
| NA | NA | 1995 |
+------+--------+--------+