首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于字段和现有数据的R中新表

基于字段和现有数据的R中新表
EN

Stack Overflow用户
提问于 2017-12-08 06:20:35
回答 2查看 63关注 0票数 0

我需要再次提出这个问题,因为它是重复的,但这个问题还没有解决。

因此,我正在研究国际贸易数据,目前有5个不同的commodity_code值表(commod_codes = c('85','84','87','73','29')):

代码语言:javascript
复制
year trade_flow reporter partner commodity_code                 commodity trade_value_usd
1 2012     Import  Belarus   China             29         Organic chemicals       150863100
2 2013     Import  Belarus   China             29         Organic chemicals       151614000
3 2014     Import  Belarus   China             29         Organic chemicals        73110200
4 2015     Import  Belarus   China             29         Organic chemicals       140396300
5 2016     Import  Belarus   China             29         Organic chemicals       135311600
6 2012     Import  Belarus   China             73 Articles of iron or steel       100484600

我需要创建一个看起来很简单的新表(第一行为商品代码,第一列为年份,单元格中为相应的贸易值):

代码语言:javascript
复制
year             commodity_code     
             29   73  84  85  87
1998        value1      ...   value 5                           
1999                                
…                       
2016

*我使用了reshape(),但没有成功。

会感谢你的支持。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-08 08:01:42

如果有重复排列,我建议使用这段代码(虽然没有在基本R-使用dplyr和tidyr包)

代码语言:javascript
复制
as.data.frame(trade_data[,c("year","commodity_code","trade_value_usd")] %>% group_by (year,commodity_code)%>% summarise( sum(trade_value_usd))%>%spread(commodity_code,3))
票数 0
EN

Stack Overflow用户

发布于 2017-12-08 06:38:43

如果我正确理解了你,这里是R基地的一条单线线。

代码语言:javascript
复制
xtabs(trade_value_usd ~ year + commodity_code, data = df);
#year          29        73
#  2012 150863100 100484600
#  2013 151614000         0
#  2014  73110200         0
#  2015 140396300         0
#  2016 135311600         0

说明:使用xtabstrade_value_usd交叉成year (行)和commodity_code (列)的函数。

样本数据

代码语言:javascript
复制
df <- read.table(text = 
    "year trade_flow reporter partner commodity_code                 commodity trade_value_usd
1 2012     Import  Belarus   China             29         'Organic chemicals'       150863100
2 2013     Import  Belarus   China             29         'Organic chemicals'       151614000
3 2014     Import  Belarus   China             29         'Organic chemicals'        73110200
4 2015     Import  Belarus   China             29         'Organic chemicals'       140396300
5 2016     Import  Belarus   China             29         'Organic chemicals'       135311600
6 2012     Import  Belarus   China             73 'Articles of iron or steel'       100484600
", header = T, row.names = 1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47708820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档