【问题标题】:Reformat input-output table in R在 R 中重新格式化输入输出表
【发布时间】:2016-10-07 14:32:53
【问题描述】:

我有一个输入输出表,其中起点(输入字段)作为行,目标(输出字段)作为列。这是一个例子:

    Mexico  Thailand    Vietnam
USA 0   3   6
Italy   3   7   8
France  9   3   1
Germany 3   6   7

我想转换表格,使原点在第 1 列,目标在第 2 列,值在第 3 列,如下所示:

origin  destination value
USA Mexico  0
USA Thailand    3
USA Vietnam 6
Italy   Mexico  3
Italy   Thailand    7
Italy   Vietnam 8
France  Mexico  9
France  Thailand    3
France  Vietnam 1
Germany Mexico  3
Germany Thailand    6
Germany Vietnam 7

【问题讨论】:

    标签: r reformat


    【解决方案1】:

    有一个使用 reshape2 包中的 melt 函数的简单解决方案:

    #sample data
    Mexico<-c(0, 3, 9,3)
    Thailand <-c(3, 7, 3, 6)
    Vietnam <-c(6, 8, 1, 7)
    names<-c("USA", "Italy", "France", "Germany") 
    df<-data.frame(names, Mexico, Thailand, Vietnam)
    
    library(reshape2)
    melt(df )
    

    “tidyr”包具有类似的功能。

    library(tidyr)
    gather(df, "names")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 2010-10-19
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      相关资源
      最近更新 更多