将数据重塑为宽格式

Reshaping data to wide format

我想将我的数据转换为特定格式,但不知道如何使用 reshape() 完成。

我的数据如下:

df<-data.frame(Cues=c("A","B","C","A","B","C"), 
               Targets=rep(1:3,2), 
               Rater=rep(1:2, each=3), 
               Rating=c(1,3,5,2,4,6))

我想得到它:

df2<-data.frame(Targets=rep(1:3,2), 
                Cues=c("A","B","C","A","B","C"), 
                Rater_1= c(1,2), 
                Rater_2=c(3,5), 
                Rater_3C=c(5,6))

我在论坛上尽了最大的努力,reshape()但并没有取得进一步的进展。你们能帮帮我吗?

在此先致谢, 乔什

注意: df data.frame 设置中没有 3C 评分器,因此此答案忽略了该问题。

牢记这一点,将长格式数据转换为宽格式数据的一种方法是使用 reshape2 模块中的 dcast 函数:

library(reshape2)
df2 <- dcast(df, Targets + Cues ~ Rater, value.var = "Rating")
names(df2)[names(df2) == "1"] <- "Rater_1"
names(df2)[names(df2) == "2"] <- "Rater_2"

df2
  Targets Cues Rater_1 Rater_2
1       1    A       1       2
2       2    B       3       4
3       3    C       5       6

此外,tidyr 模块对于此类转换非常值得关注。