首页 > 解决方案 > 如何使用 dplyr 和 tidyr 解决 r 中的数据框连接问题?

问题描述

我有一个具有以下特征的数据框:

Z Y X1 X2 X3 X4 X5 ... X30 

A n1 1 2 1 2 1 2 1      2

B n2 1 2 1 2 1 2 1      2

C n3 1 2 1 2 1 2 1      2

D n4 1 2 1 2 1 2 1      2

.
.
.

我试图将新列与 z、y 和 x 相关联。有些像这样:

Newcolumn            zyx
1                    x-y-z

我需要这样的数据框:

  colum1                  colum2  

1 A+n1+X1.headername      1

2 B+n2+X2.headernam       2

3 C+n3X3.headername       1

4 D+n4X4.headername       2

.                         .
.                         .
.                         .

我正在构建这个功能:

library(dplyr)
library(tidyr)
df_zy = df %>% pivot_longer(., cols = starts_with("X"), names_to = "Variables", 
values_to = "Value") %>%mutate(NewColumn = paste0(Z,"-",Y,"-",Variables)) %>% 
select(NewColumn, Value)

我有一些这样的:

> df_zy
# A tibble: 8 x 2
  NewColumn Value
  <chr>     <dbl>
1 A-n1-X1       1
2 A-n1-X2       2
3 B-n2-X1       1
4 B-n2-X2       2
5 C-n3-X1       1
6 C-n3-X2       2
7 D-n4-X1       1
8 D-n4-X2       2

但新列和值列不对应(例如 X1 – 2,而不是 X1 – 1)。有没有人可以选择解决这个问题?谢谢!

标签: rdplyrtidyr

解决方案


推荐阅读