在 R 中,我有一个包含数百行的 data.frame,如下所示:
V26 | V22 | n | |
---|---|---|---|
1 | 40SRPS | 30 | 1 |
2 | A1.1-4 | 28 | 2 |
3 | A1.1-4 | 29 | 1 |
4 | A1.1-4 | 30 | 8 |
5 | A1.1-4 | 31 | 5 |
6 | AAO3 | 28 | 1 |
7 | AAO3 | 31 | 1 |
8 | ABCG41 | 28 | 11 |
9 | ABCG41 | 29 | 10 |
10 | ACA11 | 28 | 6 |
我想为V22~V26制作一个热图。所以问题是如何将data.frame编辑成
28 | 29 | 30 | 31 | ||
---|---|---|---|---|---|
1 | 40SRPS | 0 | 0 | 1 | 0 |
2 | A1.1-4 | 2 | 1 | 8 | 5 |
3 | AA03 | 1 | 0 | 0 | 1 |
4 | ABCG41 | 11 | 10 | 0 | 0 |
5 | ACA11 | 6 |
有什么建议吗?
我未能找到快速编辑数据框的解决方案...
您可以使用
tidyr::pivot_wider
:
tidyr::pivot_wider(df, names_from = V22, values_from = n, values_fill = 0)
#> # A tibble: 5 x 5
#> V26 `30` `28` `29` `31`
#> <chr> <int> <int> <int> <int>
#> 1 40SRPS 1 0 0 0
#> 2 A1.1-4 8 2 1 5
#> 3 AAO3 0 1 0 1
#> 4 ABCG41 0 11 10 0
#> 5 ACA11 0 6 0 0