首页 > 解决方案 > R:将列名和值移动到行

问题描述

我有一个df1这样的数据框:

A    B    C
d    1    4
d    3    5 
e    2    6
e    1    4

我喜欢将列名 +B和的值移动C到新列R1&下的行中R2

A    R1   R2
d    B    1
d    C    4
d    B    3 
d    C    5
e    B    2
e    C    6
e    B    1
e    C    4

提前致谢

标签: r

解决方案


使用tidyr::pivot_longer它可以像这样实现:

d <- read.table(text = "A    B    C
d    1    4
d    3    5 
e    2    6
e    1    4", header = TRUE)
d
#>   A B C
#> 1 d 1 4
#> 2 d 3 5
#> 3 e 2 6
#> 4 e 1 4
tidyr::pivot_longer(d, -A, names_to = "R1", values_to = "R2")
#> # A tibble: 8 x 3
#>   A     R1       R2
#>   <chr> <chr> <int>
#> 1 d     B         1
#> 2 d     C         4
#> 3 d     B         3
#> 4 d     C         5
#> 5 e     B         2
#> 6 e     C         6
#> 7 e     B         1
#> 8 e     C         4

推荐阅读