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)))来获取 year 变量:

  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 回答