使用 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
我无法理解如何使用 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