【问题标题】:R: Converting data from long to wide formatR:将数据从长格式转换为宽格式
【发布时间】:2023-02-25 05:41:40
【问题描述】:

我有以下长格式数据。

MVal    Poly    Subclass
29.44   Mono    G
29.39   Mono    G
26.11   Mono    G
24.21   Mono    F
26.60   Mono    F
28.32   Mono    F
32.28   Mono    R
31.91   Mono    R
33.58   Mono    R
25.00   Mono    E
26.64   Mono    E
23.67   Mono    E
25.20   Mono    P
26.44   Mono    P
23.87   Mono    P
21.21   Di  G
19.30   Di  G
21.97   Di  G
21.79   Di  F
18.16   Di  F
20.30   Di  F

如何使用 R 将其转换为以下宽格式?我试过 dcast()、reshape() 但没有成功

Poly    Subclass MVal_1 Mval_2  MVal_3
Mono    G   29.44   29.39   26.11
Mono    F   24.21   26.60   28.32
Mono    R   32.28   31.91   33.58
Di      G   21.21   19.30   21.97
.....
.....

谢谢

【问题讨论】:

    标签: r


    【解决方案1】:

    Instead of pivoting, you could group and summarize:

    library(tidyverse)
    
    df %>%
      group_by(Poly, Subclass) %>%
      summarise(as_tibble(matrix(MVal, 1, dimnames = list(NA, paste0("MVal", 1:3)))))
    #> # A tibble: 7 x 5
    #> # Groups:   Poly [2]
    #>   Poly  Subclass MVal1 MVal2 MVal3
    #>   <chr> <chr>    <dbl> <dbl> <dbl>
    #> 1 Di    F         21.8  18.2  20.3
    #> 2 Di    G         21.2  19.3  22.0
    #> 3 Mono  E         25    26.6  23.7
    #> 4 Mono  F         24.2  26.6  28.3
    #> 5 Mono  G         29.4  29.4  26.1
    #> 6 Mono  P         25.2  26.4  23.9
    #> 7 Mono  R         32.3  31.9  33.6
    

    Created on 2023-02-24 with reprex v2.0.2

      猜你喜欢
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 2021-11-16
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多