给定数据帧值
Group year Value
A 2010 17
A 2011 18
F 2010 8
F 2011 9
我想将其转换为
Year A F
2010 17 8
2011 18 9
有没有解决这个问题的简单解决方案
答案 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”。