我有一个包含3列(Animal,Var1,Var2)和3行的数据框( 1 用于鼠标,猫和狗):
Animal Var1 Var2
Mouse 5 5.5
Cat 7 7.4
Dog 1 6.3
我希望它看起来像这样:
Mouse.Var1 Mouse.Var2 Cat.Var1 Cat.Var2 Dog.Var1 Dog.Var2
5 5.5 7 7.4 1 6.3
我一直在尝试使用reshape和reshape2,但似乎都没有用。 请帮忙。
答案 0 :(得分:0)
事实上这可以用reshape2
包来完成(虽然我不确定你为什么要这样做)。首先,您必须熔化数据,以便Var1和Var2列成为精简列中的标签
library(reshape2)
df <- data.frame(Animal = c('Mouse', 'Cat', 'Dog'), Var1 = c(5, 7, 1), Var2 = c(5.5, 7.4, 6.3))
df.melt <- melt(df, id.vars = 'Animal')
这会产生:
Animal variable value
1 Mouse Var1 5.0
2 Cat Var1 7.0
3 Dog Var1 1.0
4 Mouse Var2 5.5
5 Cat Var2 7.4
6 Dog Var2 6.3
然后可以将其转换为您之后的格式:
df.wide <- dcast(df.melt, . ~ Animal + variable)
. Cat_Var1 Cat_Var2 Dog_Var1 Dog_Var2 Mouse_Var1 Mouse_Var2
1 . 7 7.4 1 6.3 5 5.5