R:如何展开一个整齐的排名单词表

R:如何展开一个整齐的排名单词表,r,dplyr,tidyr,R,Dplyr,Tidyr,我有一个整洁的表单数据框架 > data.frame("topic" = c(1,1,2,2,3,3), "term" = c("will", "eat", "go", "fun", "good", "bad"), "score" = c(0.3, 0.2, 0.5, 0.4, 0.1, 0.05)) topic term score 1 1 will 0.30 2 1 e

我有一个整洁的表单数据框架

  > data.frame("topic" = c(1,1,2,2,3,3), 
               "term" = c("will", "eat", "go", "fun", "good", "bad"), 
               "score" = c(0.3, 0.2, 0.5, 0.4, 0.1, 0.05))

      topic term score
    1     1 will  0.30
    2     1  eat  0.20
    3     2   go  0.50
    4     2  fun  0.40
    5     3 good  0.10
    6     3  bad  0.05
因此,该表的目的是存储每个主题的前n个评分术语(在本例中为2个)。此表很容易使用,但我希望能够像这样查看数据:

      topic1  topic2  topic3
   1    will      go    good
   2     eat     fun     bad
在这个新表中,我不关心分数,我只想看到每个主题的前n个得分术语。我觉得使用dplyr或其他什么东西应该可以做到这一点,但我对R不是很在行

library(reshape2)
dcast(df, ave(df$topic, df$topic, FUN = seq_along)~topic, value.var = "term")[,-1]
#     1   2    3
#1 will  go good
#2  eat fun  bad


对于链接的帖子,只需使用dat[,1:2]或dat[,-3]而不是dat作为主参数,这将删除第三列。
library(dplyr)
bind_cols(lapply(split(df, df$topic), function(a) a["term"]))
#  term term1 term2
#1 will    go  good
#2  eat   fun   bad