使用 dcast 重塑数据框

Using dcast to reshape a data frame

我无法理解如何使用 dcast(或任何其他函数)来重构我的数据框。

我得到了一个看起来像这样的数据框:

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

我希望能够生成一个数据框,其中变量列中的每个变量都有自己的列及其各自的值。

当一列中有多个不同的变量需要排序时,我无法理解如何使用 dcast。

我希望我的最终数据框看起来像这样:

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

您可以使用以下代码展开 variable 列中的变量:

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