Home > Back-end >  Using dcast to reshape a data frame
Using dcast to reshape a data frame

Time:11-14

I am having trouble understanding how I can use dcast (or any other function) to restructure my data frame.

I was given a data frame that looks something like this:

Patient DOB Gender variable value
1234 2-12-19 F Age 25
1235 2-13-19 M Age 25
1236 2-14-19 F BMI 25
1237 2-15-19 M Age 25
1238 2-16-19 F Height 55
1239 2-17-19 F Age 25

I want to be able to produce a data frame where each of the variables in the variable column are there own columns with their respective values.

I am having trouble understanding how dcast can be used when there are multiple different variables in one column to sort.

I want my final data frame to look something like this:

Patient DOB Gender Age BMI Height
1234 2-12-19 F 25 25 55
1235 2-13-19 M 25 14 34
1236 2-14-19 F 25 30 20
1237 2-15-19 M 25 45 25
1238 2-16-19 F 55 25 13
1239 2-17-19 F 25 56 40

CodePudding user response:

You may use the following code to spread out the variables in variable column:

library(tidyr)

df %>%
  pivot_wider(names_from = variable, values_from = value)

# A tibble: 6 x 6
  Patient DOB     Gender   Age   BMI Height
    <int> <chr>   <chr>  <int> <int>  <int>
1    1234 2-12-19 F         25    NA     NA
2    1235 2-13-19 M         25    NA     NA
3    1236 2-14-19 F         NA    25     NA
4    1237 2-15-19 M         25    NA     NA
5    1238 2-16-19 F         NA    NA     55
6    1239 2-17-19 F         25    NA     NA
  • Related