我很难把我的data.frame英镑从一张宽桌子换成一张长桌子.

Code Country        1950    1951    1952    1953    1954
AFG  Afghanistan    20,249  21,352  22,532  23,557  24,555
ALB  Albania        8,097   8,986   10,058  11,123  12,246

现在我想把这个data.frame变成一个长的data.frame.

Code Country        Year    Value
AFG  Afghanistan    1950    20,249
AFG  Afghanistan    1951    21,352
AFG  Afghanistan    1952    22,532
AFG  Afghanistan    1953    23,557
AFG  Afghanistan    1954    24,555
ALB  Albania        1950    8,097
ALB  Albania        1951    8,986
ALB  Albania        1952    10,058
ALB  Albania        1953    11,123
ALB  Albania        1954    12,246

我已经看过并try 过使用melt()reshape()函数

如果可能的话,我想用reshape()函数来实现它

推荐答案

reshape()需要一段时间才能习惯,就像melt/cast一样.下面是一个reshape 的解决方案,假设您的数据帧名为d:

reshape(d, 
        direction = "long",
        varying = list(names(d)[3:7]),
        v.names = "Value",
        idvar = c("Code", "Country"),
        timevar = "Year",
        times = 1950:1954)

R相关问答推荐

在交互式情节中从barplot中获取值时遇到问题,在shinly中的ggplotly

使用预定值列表将模拟数量(n)替换为rnorm()

如果行和列名以相同的开头,将矩阵值设置为0

提取R中值和列名的所有可能组合

如何在R中正确对齐放射状图中的文本

使用ggplot 2根据R中的类别排列Likert比例gplot

在R中使用download. file().奇怪的URL?

IMF IFS数据以R表示

使用across,starts_with和ifelse语句变更多个变量

R中的哈密顿滤波

如何通过匹配R中所有可能的组合来从宽到长旋转多个列?

有没有办法使用ggText,<;Sub>;&;<;sup>;将上标和下标添加到同一元素?

如何在R中通过多个变量创建交叉表?

条形图顶部与其错误条形图不对齐

WRS2包中带有bwtrim的简单ANOVA抛出错误

为什么函数toTitleCase不能处理english(1),而toupper可以?

如何判断代码是否在R Markdown(RMD)上下文中交互运行?

是否有一个R函数可以输出在输入的字符向量中找到的相应正则表达式模式?

按镜像列值自定义行顺序

在R中使用ggraph包排列和着色圆