【发布时间】:2015-01-31 17:05:30
【问题描述】:
我有下面的数据框:
data<-data.frame(names= c("Bob","Bob", "Fred","Fred","Tom"), id =c(1,1,2,2,3),amount = c(100,200,400,500,700), status = c("Active","Not Active","Active","Retired","Active"))
data
names id amount status
1 Bob 1 100 Active
2 Bob 1 200 Not Active
3 Fred 2 400 Active
4 Fred 2 500 Retired
5 Tom 3 700 Active
我想旋转“状态”列,以便“金额”数据出现在新状态列下,结果如下所示:
names id Active Not Active Retired
Bob 1 100 200
Fred 2 400 500
Tom 3 700
这可能吗?最好的方法是什么?
【问题讨论】:
-
在任何真实的东西中(阅读:不是 Excel),这是 “将数据从长格式重塑为宽格式”:
library(tidyr) ; spread(data, status, amount)
标签: r