簡體   English   中英

R:將列轉換為行數據集

[英]R: Transforming Columns into Rows Dataset

我有這個數據框:

# A tibble: 6 x 5
  Full.Name            freq_2019 freq_2020 Ra_2019 Ra_2020
  <chr>                    <dbl>     <dbl>   <dbl>   <dbl>
1 A. Patrick Beharelle     1.06      1.43    0.110  -0.116
2 Aaron P. Graft          -1.50     -2.48    0.276   0.376
3 Aaron P. Jagdfeld       -2.42     21.8     0.745   0.889
4 Adam H. Schechter       -2.04     -0.470   0.299   0.296
5 Adam P. Symson           0.563     1.05    0.139   0.292
6 Adena T. Friedman       -0.406    -0.110   0.309   0.242

我想將數據框轉換為這種結構:應該有一種相對簡單的方法可以做到這一點,但我做不到。 它總是把名字弄亂。 所以任何幫助表示贊賞。

在此處輸入圖像描述

一個可能的解決方案:

library(tidyverse)

df %>% 
  pivot_longer(-Full.Name) %>% 
  separate(name, into = c("name", "Y"), sep = "_") %>% 
  pivot_wider(c(Full.Name, Y)) %>% 
  relocate(Y, .after = last_col())

#> # A tibble: 12 × 4
#>    Full.Name              freq     Ra Y    
#>    <chr>                 <dbl>  <dbl> <chr>
#>  1 A. Patrick Beharelle  1.06   0.11  2019 
#>  2 A. Patrick Beharelle  1.43  -0.116 2020 
#>  3 Aaron P. Graft       -1.5    0.276 2019 
#>  4 Aaron P. Graft       -2.48   0.376 2020 
#>  5 Aaron P. Jagdfeld    -2.42   0.745 2019 
#>  6 Aaron P. Jagdfeld    21.8    0.889 2020 
#>  7 Adam H. Schechter    -2.04   0.299 2019 
#>  8 Adam H. Schechter    -0.47   0.296 2020 
#>  9 Adam P. Symson        0.563  0.139 2019 
#> 10 Adam P. Symson        1.05   0.292 2020 
#> 11 Adena T. Friedman    -0.406  0.309 2019 
#> 12 Adena T. Friedman    -0.11   0.242 2020

一個稍微簡單的解決方案是

library(tidyr)

pivot_longer(df, -1, names_sep = "_", names_to = c(".value", "Year"))
#> # A tibble: 12 x 4
#>    Full.Name            Year    freq     Ra
#>    <chr>                <chr>  <dbl>  <dbl>
#>  1 A. Patrick Beharelle 2019   1.06   0.11 
#>  2 A. Patrick Beharelle 2020   1.43  -0.116
#>  3 Aaron P. Graft       2019  -1.5    0.276
#>  4 Aaron P. Graft       2020  -2.48   0.376
#>  5 Aaron P. Jagdfeld    2019  -2.42   0.745
#>  6 Aaron P. Jagdfeld    2020  21.8    0.889
#>  7 Adam H. Schechter    2019  -2.04   0.299
#>  8 Adam H. Schechter    2020  -0.47   0.296
#>  9 Adam P. Symson       2019   0.563  0.139
#> 10 Adam P. Symson       2020   1.05   0.292
#> 11 Adena T. Friedman    2019  -0.406  0.309
#> 12 Adena T. Friedman    2020  -0.11   0.242

reprex 包於 2022-06-10 創建 (v2.0.1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM