r - 如何转置特定列值的数据框?
问题描述
我有如下数据框。
Country <- c("US","CA","UK","FR","US","CA","UK","FR","US","CA","UK","FR")
Month <- c(201901,201901,201901,201901,201902,201902,201902,201902,201903,201903,201903,201903)
HomeSales <- c(10,50,60,75,35,25,46,70,50,48,95,60)
CarSales <- c(10,50,60,75,35,25,46,70,50,48,95,60)
TransposeData <- data.frame(Country,Month,HomeSales,CarSales)
需要转置如下。
我的产品总是动态的,所以我需要构建代码来处理未来的产品。请帮助我为我的数据集构建逻辑。在此先感谢您的帮助。
解决方案
用于pivot_longer
从宽格式转换为长格式,然后arrange
对其进行排序(如果需要排序)。
library(dplyr)
library(tidyr)
TransposeData %>%
pivot_longer(3:4, names_to = "Product", values_to = "Sales") %>%
arrange(Product, Country, Month)
给予:
# A tibble: 24 x 4
Country Month Product Sales
<fct> <dbl> <chr> <dbl>
1 CA 201901 CarSales 50
2 CA 201902 CarSales 25
3 CA 201903 CarSales 48
4 FR 201901 CarSales 75
5 FR 201902 CarSales 70
6 FR 201903 CarSales 60
7 UK 201901 CarSales 60
8 UK 201902 CarSales 46
9 UK 201903 CarSales 95
10 US 201901 CarSales 10
# ... with 14 more rows
推荐阅读
- c# - 使用动画C#更改网格的位置
- android - Flutter 文件选择器创建符号链接
- python - 根据条件生成熊猫数据框
- javascript - 如何修改此搜索表以遍历所有列
- apache-spark - 如何利用 Spark 的管道在字符串中查找短语然后添加特征类别?
- python - TypeError:列表索引必须是整数或切片,而不是 str | 姜戈 | 反应 | 邮差
- javascript - 将多维数组从 PHP 传递到 JavaScript
- c++ - 带有重载赋值运算符的 C6001
- android - Android 从图库中获取图像并发送到另一个活动
- c# - 在我的 Unity 项目中调用 TextBox 构造函数时引发 NotImplementedException