如何解决将两列与具有 R 中第一列名称的第二列垂直组合
例如,如果我有这个数据框:
column1 column2
v1 v4
v2 v5
v3 v6
如何制作一个新的数据框,使其看起来像这样:
column3 column4
v1 column1
v2 column1
v3 column1
v4 column2
v5 column2
v6 column2
感谢任何帮助!非常感谢!
解决方法
您可以使用 pivot_longer()
包中的 tidyr
:
table <- data.frame(
column1 = paste0("v",1:3),column2 = paste0("v",4:6)
)
pivot <- tidyr::pivot_longer(
table,cols = everything(),names_to = "column4",values_to = "column3"
)
pivot
#> # A tibble: 6 x 2
#> column4 column3
#> <chr> <chr>
#> 1 column1 v1
#> 2 column2 v4
#> 3 column1 v2
#> 4 column2 v5
#> 5 column1 v3
#> 6 column2 v6
如果行/列的顺序很重要,您可以使用 dplyr
:
library(dplyr)
pivot %>%
relocate(column3) %>%
arrange(column3)
#> # A tibble: 6 x 2
#> column3 column4
#> <chr> <chr>
#> 1 v1 column1
#> 2 v2 column1
#> 3 v3 column1
#> 4 v4 column2
#> 5 v5 column2
#> 6 v6 column2
,
您可以将列stack
放在一起:
stack(df)
values ind
1 v1 column1
2 v2 column1
3 v3 column1
4 v4 column2
5 v5 column2
6 v6 column2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。