我有一个以标准化方式从数据库中获取的数据,其中包含年份,状态和值的字段。
我想对数据进行分析,并且需要格式化每年是一个字段而不是记录。所以我想要每个记录都是状态的数据,然后每年都有一个字段和每个值对于那些字段是该年和该州的价值。
是否有执行此操作的命令?
所以我有:
State Year Value
KY 1998 56
KY 1997 78
IL 1998 48
IL 1997 72
我希望:
State 1997_value 1998_value
KY 78 56
IL 72 48
答案 0 :(得分:20)
您想使用reshape()
功能。
reshape(data, idvar="State", timevar="Year", direction="wide")
答案 1 :(得分:6)
另一个选择是使用由无法模仿的Hadley Wickham创建的reshape 包:
library(reshape)
tuna<-melt(data,id.vars=c("State","Year"))
cast(tuna,State~Year~variable)
答案 2 :(得分:2)
您甚至可以将熔化线和铸造线组合成一次重铸函数调用。
ds <- data.frame(State = c("KY", "KY", "IL", "IL"),
Year = c(1998, 1997, 1998, 1997),
Value = c(56, 78, 48, 72))
library(reshape)
recast(ds, State ~ Year, id.var = c("State", "Year"))