gpt4 book ai didi

reshape 1 列中的值并附加到现有列名

转载 作者:行者123 更新时间:2023-12-05 00:12:43 27 4
gpt4 key购买 nike

我有一个看起来像这样的数据集:

Col1     Col2    Col3   Col4    Col5
A 1 1 10 90
A 1 2 20 100
A 1 3 30 110
A 1 4 40 120
B 2 1 50 130
B 2 2 60 140
B 2 3 70 150
B 2 4 80 160

如何 reshape 它,以便 Col1 中的值位于 Col4 及以后的所有列的列名中?我的实际数据集有 20 列。

我希望我的最终输出如下所示:
Col2    Col3   Col4_A    Col4_B      Col5_A      Col5_B
1 1 10 NA 90 NA
1 2 20 NA 100 NA
1 3 30 NA 110 NA
1 4 40 NA 120 NA
2 1 NA 50 NA 130
2 2 NA 60 NA 140
2 3 NA 70 NA 150
2 4 NA 80 NA 160

最佳答案

我们可以使用 gather , unitespread来自 tidyr :

library(dplyr)
library(tidyr)

df %>%
gather(var, value, -(Col1:Col3)) %>%
unite(var, var, Col1, sep="_") %>%
spread(var, value)

结果:
  Col2 Col3 Col4_A Col4_B Col5_A Col5_B
1 1 1 10 NA 90 NA
2 1 2 20 NA 100 NA
3 1 3 30 NA 110 NA
4 1 4 40 NA 120 NA
5 2 1 NA 50 NA 130
6 2 2 NA 60 NA 140
7 2 3 NA 70 NA 150
8 2 4 NA 80 NA 160

关于 reshape 1 列中的值并附加到现有列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261803/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com