如何解决通过 R 中的多个变量传播到广泛的数据帧组? 数据
我试图使用 pivot_wider()
和 spread()
函数将我的数据从长格式改造成宽格式。是否可以通过多个变量(即我的数据帧中的 ccode 和年份)传播到广泛的数据帧组?
当前数据帧:
代码 | 行业 | 年 | 到 |
---|---|---|---|
2 | 农业 | 2000 | 8.3 |
2 | 农业 | 2001 | 9.2 |
2 | 矿物 | 2000 | 9.1 |
3 | 农业 | 2000 | 6.1 |
3 | 农业 | 2001 | 8.1 |
3 | 矿物 | 2000 | 9 |
4 | 农业 | 2000 | 9 |
4 | 农业 | 2001 | 5.3 |
4 | 矿物 | 2000 | 8.1 |
5 | 农业 | 2000 | 8.4 |
5 | 农业 | 2001 | 4.3 |
5 | 矿物 | 2000 | 4.2 |
理想结果:
代码 | 年 | 农业 | 矿物 |
---|---|---|---|
2 | 2000 | 8.3 | 9.1 |
2 | 2001 | 9.2 | 不适用 |
3 | 2000 | 6.1 | 9 |
3 | 2001 | 8.1 | 不适用 |
4 | 2000 | 9 | 8.1 |
4 | 2001 | 5.3 | 不适用 |
5 | 2000 | 8.4 | 9.1 |
5 | 2001 | 4.3 | 4.2 |
谢谢。
解决方法
我们可以使用pivot_wider
library(tidyr)
pivot_wider(df1,names_from = industry,values_from = TO)
-输出
# A tibble: 8 x 4
# ccode year agri mineral
# <int> <int> <dbl> <dbl>
#1 2 2000 8.3 9.1
#2 2 2001 9.2 NA
#3 3 2000 6.1 9
#4 3 2001 8.1 NA
#5 4 2000 9 8.1
#6 4 2001 5.3 NA
#7 5 2000 8.4 4.2
#8 5 2001 4.3 NA
数据
df1 <- structure(list(ccode = c(2L,2L,3L,4L,5L,5L),industry = c("agri","agri","mineral","mineral"),year = c(2000L,2001L,2000L,2000L),TO = c(8.3,9.2,9.1,6.1,8.1,9,5.3,8.4,4.3,4.2)),class = "data.frame",row.names = c(NA,-12L))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。