0

I would like to reorganise an output in r, like a pivot table type transformation. My original data looks like this

df.age <- c("0-15","16-29","30-44", "45+", "0-15","16-29","30-44", "45+") 
df.sex <- c("Female","Female","Female","Female","Male","Male","Male","Male")
Freq <- c(134,245,145,253,567,456,354,341)
df_start <- data.frame(df.age, df.sex, Freq)
> df_start

  df.age df.sex Freq
1   0-15 Female  134
2  16-29 Female  245
3  30-44 Female  145
4    45+ Female  253
5   0-15   Male  567
6  16-29   Male  456
7  30-44   Male  354
8    45+   Male  341

I would like the result to look like this, so age is in rows and sex is in columns.

df.age <- c("0-15","16-29","30-44", "45+") 
df.sex_Female <- c(134,245,145,253)
df.sex_Male <- c(567,456,354,341)
df_result <- data.frame(df.age, df.sex_Female, df.sex_Male)
> df_result

  df.age df.sex_Female df.sex_Male
1   0-15           134         567
2  16-29           245         456
3  30-44           145         354
4    45+           253         341

Any help greatly appreciated. Thanks

H.Cheung
  • 855
  • 5
  • 12

0 Answers0