2017-03-01 47 views
-2

我想将我的数据转换为特定格式,但不知道如何完成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()并没有真正得到进一步。你们能帮我吗?

预先感谢和最好的, 乔希

+0

你用'reshape'试过了什么? – emilliman5

+3

我的输出 – Sotos

+2

我也无法理解。请详细解释你的输出 – Jimbou

回答

0

注:没有在DF data.frame设置没有3C评估者,所以这个答案是忽略这个问题。

考虑到这一点,从长期转换为宽屏格式的数据的一种方法是从​​模块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模块是非常值得看的这种转换。

+0

非常感谢!这就是我正在寻找的..我认为我可以重塑/ dcast数据,以便它自动命名新的列“Rater_1”和“Rater_2”。对于不好的重现性例子,我试图简化我的数据,但没有做好。下一次,我会做好准备;)感谢您的帮助,makeyourownmaker! – Josh

+0

不用担心。 R不是最直接的语言! – makeyourownmaker

相关问题