以给定格式转换数据帧

时间:2012-06-15 11:04:17

标签: r

给定数据帧值

     Group          year       Value
     A              2010       17
     A              2011       18
     F              2010        8
     F              2011        9

我想将其转换为

          Year      A      F  
          2010     17      8
          2011     18      9

有没有解决这个问题的简单解决方案

2 个答案:

答案 0 :(得分:4)

library('reshape2')

df <- read.table(text="     Group          year       Value
     A              2010       17
     A              2011       18
     F              2010        8
     F              2011        9", header = TRUE)

dfc <- dcast(df, year ~ Group )

答案 1 :(得分:3)

虽然语法可能令人困惑,但我仍然发现基础R中的重塑很有用。使用由gauden提供的df

reshape_df <- reshape(df,dir="wide",idvar="year",timevar="Group")
colnames(reshape_df) <- c("year","A","F")

将数据从“long”格式转换为“wide”格式。通常,时间变量成为列名,但在这种情况下,我们寻求“A”和“F”。因此,语法将timevar称为“Group”。