重塑面板数据

我需要重新devise面板数据分析的数据。 我search了互联网,只发现如何通过使用Stata获得所需的结果; 但是我应该使用R和Excel。

我的初始和最终数据(所需的结果)看起来非常类似于Stata重塑数据的例子的第一页。 http://spot.colorado.edu/~moonhawk/technical/C1912567120/E220703361/Media/reshape.pdf

用R还是Excel可以实现吗? 我尝试从reshape2库使用熔化函数,但我得到

CountryName ProductName Unit Years value 1 Belarus databaseHouseholds '000 Y1977 2942.702 2 Belarus databasePopulation '000 Y1977 9434.200 3 Belarus databaseUrbanPopulation '000 Y1977 4946.882 4 Belarus databaseRuralPopulation '000 Y1977 4487.318 5 Belarus originalHouseholds '000 Y1977 NA 6 Belarus originalUrban households '000 Y1977 NA 7 Poland .............................................. ........................................................... 

当我想得到像这样的东西:

 CountryName Years databaseHouseholds databasePopulation databaseUrbanPopulation databaseRuralPopulationUnit originalHousehold originalUrbanhouseholds Belarus 

在列databaseHouseholds,databasePopulation,…应该是它们各自的值,所以我可以使用数据集面板build模。 非常感谢你。

尝试:

  library(reshape2) dcast(dat, CountryName+Years+Unit~ProductName, value.var="value") # CountryName Years Unit databaseHouseholds databasePopulation #1 Belarus Y1977 0 2942.702 9434.2 # databaseRuralPopulation databaseUrbanPopulation originalHouseholds #1 4487.318 4946.882 NA # originalUrban households # 1 NA 

数据

 dat <- structure(list(CountryName = c("Belarus", "Belarus", "Belarus", "Belarus", "Belarus", "Belarus"), ProductName = c("databaseHouseholds", "databasePopulation", "databaseUrbanPopulation", "databaseRuralPopulation", "originalHouseholds", "originalUrban households"), Unit = c(0L, 0L, 0L, 0L, 0L, 0L), Years = c("Y1977", "Y1977", "Y1977", "Y1977", "Y1977", "Y1977"), value = c(2942.702, 9434.2, 4946.882, 4487.318, NA, NA)), .Names = c("CountryName", "ProductName", "Unit", "Years", "value"), class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6"))