我需要你帮助R来投射这些数据:
STATUS SCORE JOB.ID
1 STATUS1 99 JOB1
2 STATUS1 99 JOB2
3 STATUS1 99 JOB3
4 STATUS1 99 JOB4
5 STATUS2 36 JOB5
6 STATUS2 36 JOB6
7 STATUS2 49 JOB7
8 STATUS2 58 JOB8
9 STATUS2 64 JOB9
这种广泛的形式:
STATUS1 STATUS2
1 JOB1 JOB6
2 JOB2 JOB7
3 JOB3 JOB8
4 JOB4 JOB9
5 JOB5 <NA>
我不需要计算值,我只需要制作列表。理想情况下,分数将用于对结果列表进行排序。柱长不均匀。我无法在其他地方找到优雅的答案。谢谢。
答案 0 :(得分:1)
如果您确实希望将它们全部放在一个数据框中,您可以执行以下操作:
library(reshape2)
library(plyr)
dat <- read.table(text = " STATUS SCORE JOB.ID
1 STATUS1 99 JOB1
2 STATUS1 99 JOB2
3 STATUS1 99 JOB3
4 STATUS1 99 JOB4
5 STATUS2 36 JOB5
6 STATUS2 36 JOB6
7 STATUS2 49 JOB7
8 STATUS2 58 JOB8
9 STATUS2 64 JOB9",header = TRUE,sep = "")
> dat <- ddply(dat,.(STATUS),transform,ind = seq_along(STATUS))
> dcast(dat,ind~STATUS,fill = NA,value.var = "JOB.ID")
ind STATUS1 STATUS2
1 1 JOB1 JOB5
2 2 JOB2 JOB6
3 3 JOB3 JOB7
4 4 JOB4 JOB8
5 5 <NA> JOB9