【发布时间】:2014-01-31 19:51:03
【问题描述】:
我正在尝试将这个排名数据重新塑造成更图形化的东西.. 可能类似于:ggplot(party2, aes(x=Preference, y=Ranking, colour=id)+geom_line()。首先我必须重新塑造虽然它。
这是目前的数据:
> head(party)
Theme Music/DJ Drink deals People Location
3 3 4 5 1 2
4 2 3 5 1 4
5 5 4 3 1 2
6 4 1 5 2 3
我们的目标是让数据看起来像这样:
id Preference Ranking
1 Theme 3
1 Music/DJ 4
1 Drink deals 5
1 People 1
1 Location 2
2 Theme 2
2 Music/DJ 3
2 Drink deals 5
为了重塑数据,我使用了来自此链接的 Hadley 代码:How to reshape this dataframe with the reshape package,但我仍然遇到问题。我想我很接近了。
到目前为止我的代码是:
party.pref<-c("Theme", "Music/DJ", "Drink deals", "People", "Location")
party<-data[,party.pref]
party<-na.omit(party)
party2<-cbind(party, id=seq(1,nrow(party),1)) # Add IDs column
gp<-melt(party2, id="id", measured=party.pref)
dcast(gp, ... ~party.pref)
结果是这样的:
id variable Drink deals Location Music/DJ People Theme
1 Theme <NA> <NA> <NA> <NA> 3
1 Music/DJ <NA> <NA> <NA> <NA> 4
1 Drink deals <NA> <NA> <NA> <NA> 5
1 People <NA> <NA> <NA> <NA> 1
1 Location <NA> <NA> <NA> <NA> 2
2 Theme <NA> <NA> 2 <NA> <NA>
如您所见,如果所有这些因素列都变成了“排名”并且我摆脱了所有的 NA,我会得到我的答案,但我不知道该怎么做。我认为我在“dcast”或“melt”上做错了什么,但我不确定是哪个。
非常感谢任何帮助,谢谢!
【问题讨论】: