2017-05-22 9 views
-1

データフレームをワイドからロングのフォーマットに再構成するときに問題があります。私はlong形式に変換し、このようになりますどのようにデータフレームをワイドからロングに変更する

  Scenario Quantile Income2014 Electricity2014 PopulationWeight ElasticityIncomeDemand Income2015 Income2016 
1 Scenario_base  1 4.561682  48.56899   39.7801    0.3816979 4.698532 4.839488 
991 Scenario_25  1 4.561682  48.56899   39.7801    0.3816979 11.607532 11.748488 
1981 Scenario_50  1 4.561682  48.56899   39.7801    0.3816979 11.607532 11.748488 
    Income2017 Income2018 Electricity2015 Electricity2016 Electricity2017 Electricity2018 
1  4.984673 5.134213  49.12516  49.68768  50.25666  50.83214 
991 11.893673 12.043213  52.34187  52.56053  52.78403  53.01246 
1981 11.893673 12.043213  82.37218  82.73368  83.10308  83.48050 

を::tidyrを使用して

Variable  Scenario Country Year Quantile Value 
    Income Scenario_base U.S. 2014  1 4.561682 
    Income Scenario_base U.S. 2015  1 4.698532 
    Income Scenario_base U.S. 2016  1 4.839488 
    Income Scenario_base U.S. 2017  1 4.984673 
    Income Scenario_base U.S. 2018  1 5.134213 
    Income Scenario_25 U.S. 2014  1 4.561682 
    Income Scenario_25 U.S. 2015  1 11.607532 
    Income Scenario_25 U.S. 2016  1 11.748488 
    Income Scenario_25 U.S. 2017  1 11.893673 
    Income Scenario_25 U.S. 2018  1 12.043213 
    Income Scenario_50 U.S. 2014  1 4.561682 
    Income Scenario_50 U.S. 2015  1 11.607532 
    Income Scenario_50 U.S. 2016  1 11.748488 
    Income Scenario_50 U.S. 2017  1 11.893673 
    Income Scenario_50 U.S. 2018  1 12.043213 
Electricity Scenario_base U.S. 2014  1 48.56899 
Electricity Scenario_base U.S. 2015  1 49.12516   
Electricity Scenario_base U.S. 2016  1 49.68768 
Electricity Scenario_base U.S. 2017  1 50.25666 
Electricity Scenario_base U.S. 2018  1 50.83214 
Electricity Scenario_25 U.S. 2014  1 48.56899 
Electricity Scenario_25 U.S. 2015  1 52.34187   
Electricity Scenario_25 U.S. 2016  1 52.56053   
Electricity Scenario_25 U.S. 2017  1 52.78403    
Electricity Scenario_25 U.S. 2018  1 53.01246 
Electricity Scenario_50 U.S. 2014  1 48.56899 
Electricity Scenario_50 U.S. 2015  1 82.37218   
Electricity Scenario_50 U.S. 2016  1 82.73368   
Electricity Scenario_50 U.S. 2017  1 83.10308    
Electricity Scenario_50 U.S. 2018  1 83.48050 
+0

は '' data.table'または 'reshape2'パッケージでmelt'を使用してください。ここに参照http://seananderson.ca/2013/10/19/reshape.html – akash87

+0

ありがとう@ akash87の方向です。 – ClarityParity

+0

ありがとう@発見のためのImo! – ClarityParity

答えて

0

、後継

現在、私のデータフレームは、wide形式で、次のようになりますreshape2。 (およびそのヘルパー関数starts_with()dplyr):

df1 <- read.table(header = TRUE, stringsAsFactors = FALSE, text = 
"Scenario Quantile Income2014 Electricity2014 PopulationWeight ElasticityIncomeDemand Income2015 Income2016 Income2017 Income2018 Electricity2015 Electricity2016 Electricity2017 Electricity2018 
Scenario_base  1 4.561682  48.56899   39.7801    0.3816979 4.698532 4.839488 4.984673 5.134213  49.12516  49.68768  50.25666  50.83214 
Scenario_25  1 4.561682  48.56899   39.7801    0.3816979 11.607532 11.748488 11.893673 12.043213  52.34187  52.56053  52.78403  53.01246 
Scenario_50  1 4.561682  48.56899   39.7801    0.3816979 11.607532 11.748488 11.893673 12.043213  82.37218  82.73368  83.10308  83.48050") 

library(tidyr) 
library(dplyr) 

df1 %>% 
    gather(var_year, Value, starts_with("Income"), starts_with("Electricity")) %>% 
    separate(var_year, c("Variable", "Year"), -5) 
#   Scenario Quantile PopulationWeight ElasticityIncomeDemand Variable Year  Value 
# 1 Scenario_base  1   39.7801    0.3816979  Income 2014 4.561682 
# 2 Scenario_25  1   39.7801    0.3816979  Income 2014 4.561682 
# 3 Scenario_50  1   39.7801    0.3816979  Income 2014 4.561682 
# 4 Scenario_base  1   39.7801    0.3816979  Income 2015 4.698532 
# 5 Scenario_25  1   39.7801    0.3816979  Income 2015 11.607532 
# 6 Scenario_50  1   39.7801    0.3816979  Income 2015 11.607532 
# 7 Scenario_base  1   39.7801    0.3816979  Income 2016 4.839488 
# 8 Scenario_25  1   39.7801    0.3816979  Income 2016 11.748488 
# 9 Scenario_50  1   39.7801    0.3816979  Income 2016 11.748488 
# 10 Scenario_base  1   39.7801    0.3816979  Income 2017 4.984673 
# 11 Scenario_25  1   39.7801    0.3816979  Income 2017 11.893673 
# 12 Scenario_50  1   39.7801    0.3816979  Income 2017 11.893673 
# 13 Scenario_base  1   39.7801    0.3816979  Income 2018 5.134213 
# 14 Scenario_25  1   39.7801    0.3816979  Income 2018 12.043213 
# 15 Scenario_50  1   39.7801    0.3816979  Income 2018 12.043213 
# 16 Scenario_base  1   39.7801    0.3816979 Electricity 2014 48.568990 
# 17 Scenario_25  1   39.7801    0.3816979 Electricity 2014 48.568990 
# 18 Scenario_50  1   39.7801    0.3816979 Electricity 2014 48.568990 
# 19 Scenario_base  1   39.7801    0.3816979 Electricity 2015 49.125160 
# 20 Scenario_25  1   39.7801    0.3816979 Electricity 2015 52.341870 
# 21 Scenario_50  1   39.7801    0.3816979 Electricity 2015 82.372180 
# 22 Scenario_base  1   39.7801    0.3816979 Electricity 2016 49.687680 
# 23 Scenario_25  1   39.7801    0.3816979 Electricity 2016 52.560530 
# 24 Scenario_50  1   39.7801    0.3816979 Electricity 2016 82.733680 
# 25 Scenario_base  1   39.7801    0.3816979 Electricity 2017 50.256660 
# 26 Scenario_25  1   39.7801    0.3816979 Electricity 2017 52.784030 
# 27 Scenario_50  1   39.7801    0.3816979 Electricity 2017 83.103080 
# 28 Scenario_base  1   39.7801    0.3816979 Electricity 2018 50.832140 
# 29 Scenario_25  1   39.7801    0.3816979 Electricity 2018 53.012460 
# 30 Scenario_50  1   39.7801    0.3816979 Electricity 2018 83.480500 
+0

ありがとう、@Aurèle! – ClarityParity

関連する問題