0

次のようなデータがあります。

  Country.Code Indicator.Code X1960 X1961 X1962 X1963 X1964 X1965
          AFG    allsi.bi_q1    NA    NA    NA    NA    NA    NA
          AFG    allsp.bi_q1    NA    NA    NA    NA    NA    NA
          AFG    allsa.bi_q1    NA    NA    NA    NA    NA    NA
          AFG    lm_ub.bi_q1    NA    NA    NA    NA    NA    NA
          AFG  allsi.gen_pop    NA    NA    NA    NA    NA    NA
          AFG  allsp.gen_pop    NA    NA    NA    NA    NA    NA

そして、それを次のようにしたいと思います:

  Country.Code Year  allsi.bi_q1 allsp.bi_q1 allsa.bi_q1 lm_ub.bi_q1 allsi.gen_pop allsp.gen_pop
          AFG   1960      NA        NA        NA           NA          NA            NA
          AFG   1961      NA        NA        NA           NA          NA            NA
          AFG   1962      NA        NA        NA           NA          NA            NA
          AFG   1963      NA        NA        NA           NA          NA            NA
          AFG   1964      NA        NA        NA           NA          NA            NA
          AFG   1965      NA        NA        NA           NA          NA            NA

meltfromを使用してみましたが、年変数を取得するためにreshape2( も使用した後) 次のようなものしか得られませんでした。as.numeric(substr(dataset$variable,2,5))

  Country.Code Indicator.Code variable value year
          AFG    allsi.bi_q1    X1960    NA 1960
          AFG    allsp.bi_q1    X1960    NA 1960
          AFG    allsa.bi_q1    X1960    NA 1960
          AFG    lm_ub.bi_q1    X1960    NA 1960
          AFG  allsi.gen_pop    X1960    NA 1960
          AFG  allsp.gen_pop    X1960    NA 1960

の値を取得して、それぞれの年と国indicator.codeの値を持つ列にする方法を教えてください。value私の例では、NA は無視してください。

4

1 に答える 1

2

dcast溶かした後に でキャストするだけです(これも からreshape2)。

dcast(longdat, Country.Code + year ~ Indicator.Code, value.var = "value")
于 2014-06-06T22:44:15.287 に答える