我需要再次提出问题,因为它已被关闭,但问题尚未解决。
所以,我正在研究国际贸易数据,目前有下表,其中包含5个不同的currency_code值(commod_codes = c('85','84','87','73','29 ')):
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
我需要创建一个看起来很简单的新表(顶行中的商品代码,第一列中的年份以及单元格中相应的交易值):
year commodity_code
29 73 84 85 87
1998 value1 ... value 5
1999
…
2016
*我使用了reshape()但没有成功。
非常感谢您的支持。
答案 0 :(得分:0)
如果我理解正确的话,这里是基础R的单行。
xtabs
说明:使用trade_value_usd
将year
作为commodity_code
(行)和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)
(列)的函数进行交叉制表。
$("#analyticForm_description").load('https://192.168.23.10/SystemServices/main?system:run=html/indicators/templates/editApp-definition.xml&Id=1000205&palletId=testtt', function() { MD.ui.editPallets.editform_definition(); } );
答案 1 :(得分:0)
如果存在重复的排列,我建议使用此代码(虽然不在基础R中 - 使用dplyr和tidyr包)
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))