I have a dataframe that looks like this:

```
 df <- structure(list(status = c("case", "case", "case", "case", "control", 
"control", "control", "control", "MCI", "MCI", "MCI", "MCI", 
"unknown", "unknown", "unknown", "unknown"), Ethnicity = structure(c(1L, 
2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), .Label = c("AA", 
"Asian", "Hispanic", "NHW"), class = "factor"), `<65` = c(29L, 
13L, 63L, 1215L, 0L, 0L, 0L, 0L, 75L, 23L, 43L, 385L, 6L, 5L, 
19L, 126L), `<70` = c(45L, 25L, 109L, 2321L, 0L, 0L, 0L, 1L, 
124L, 36L, 76L, 633L, 14L, 6L, 23L, 166L), `<75` = c(73L, 47L, 
167L, 3704L, 0L, 0L, 0L, 1L, 174L, 52L, 103L, 863L, 29L, 7L, 
33L, 220L)), class = "data.frame", row.names = c(NA, -16L))

```

I need to convert this to wide format like this below with header for each group. How do I do it?

[![enter image description here](https://i.stack.imgur.com/quq5k.png)](https://i.stack.imgur.com/quq5k.png)