我有一个如下数据集:
wk name score
3 - Davide - 3.070000
6 - Davide - 3.460000
7 - Davide - 3.480000
48 -Cringe- 2.773333
79 -Fabynsane- 2.330000
69 -PiDjO- 2.070000
61 -sjb- 2.310000
我想使用此信息构建如下所示的面板:
name1 name2 name3 ...
wk1
wk2
wk3
...
我在重塑中尝试了dcast:
panel.num = dcast(data, name + wk ~ score)
但它给了我一个类似下面的面板,这显然不是我想要的那个:
Authorname wk.list 1 2 3 4 5 6 7 8 9 10 11 12 13
2 - Davide - 3 1 NA NA NA NA NA NA NA NA NA NA NA NA NA
3 - Davide - 6 1 NA NA NA NA NA NA NA NA NA NA NA NA NA
我想知道出了什么问题以及如何解决这个问题。感谢〜
答案 0 :(得分:2)
尝试wk ~ name
,即
dat <- data.frame(wk=sample(1:100, 10),
name=sample(c("Davide", "Cringe", "Fabynsane"), 10, rep=T),
score=runif(10, 2, 3))
library(reshape2)
dcast(dat, wk ~ name)
# wk Cringe Davide Fabynsane
# 1 8 NA 2.225543 NA
# 2 12 NA NA 2.958040
# 3 46 NA 2.659209 NA
# 4 47 NA 2.086529 NA
# 5 59 NA NA 2.287232
答案 1 :(得分:1)
其他选项包括
library(tidyr)
spread(dat, name, score)
reshape
来自base R
reshape(dat, idvar='wk', timevar='name', direction='wide')