gpt4 book ai didi

r - 仅分离变量名后转置

转载 作者:行者123 更新时间:2023-12-01 00:21:57 24 4
gpt4 key购买 nike

我是 R 的新手,但我沉迷于掌握!我正在做一个工作项目,我完全被难住了!任何帮助深表感谢!

我需要转换这个数据框...

   Brand       UK__Sales__YA   UK__Sales__MAT  CN__Sales__YA  CN__Sales__MAT
1 Snickers 100 110 90 95
2 Twix 50 60 30 35
3 Skittles 75 80 105 130

... 到这个
   Brand       Country     Year      Sales
1 Snickers UK YA 100
2 Snickers UK MAT 110
3 Snickers CN YA 90
4 Snickers CN MAT 95
5 Twix UK YA 50
6 Twix UK MAT 60
7 Twix CN YA 30
8 Twix CN MAT 35
9 Skittles UK YA 75
10 Skittles UK MAT 80
11 Skittles CN YA 105
12 Skittles CN MAT 130

正如您所看到的,我需要断开我的 Sales 变量的第一部分和最后一部分,并将它们创建为单独的数据堆栈。我的数据集中有其他国家/地区和其他指标,但我想如果你能帮我解决这个问题,那么我就可以完成它。谢谢!! :-)

最佳答案

查看 tidyr 包——实际上是 tidyverse 中的所有包有助于此类数据调整工作:

library(tidyr)
library(dplyr)

df %>%
gather(key, Sales, -Brand) %>%
separate(key, c("Country", "delete", "Year"), sep = "__") %>%
select(-delete) %>%
arrange(Brand)

# Brand Country Year Sales
# 1 Skittles UK YA 75
# 2 Skittles UK MAT 80
# 3 Skittles CN YA 105
# 4 Skittles CN MAT 130
# 5 Snickers UK YA 100
# 6 Snickers UK MAT 110
# 7 Snickers CN YA 90
# 8 Snickers CN MAT 95
# 9 Twix UK YA 50
# 10 Twix UK MAT 60
# 11 Twix CN YA 30
# 12 Twix CN MAT 35

要了解发生了什么,请运行每个管道 %>%单独声明:(例如,查看 df %>% gather(key, Sales, -Brand) 之后的输出以了解其作用)。接下来通过 separate 运行转换管道。

关于r - 仅分离变量名后转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47953509/

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