> A <- data.frame(x = c(1,1,2,2), y = c(1,2,1,2), v = c(0.1,0.2,0.3,0.4))
> A
x y v
1 1 1 0.1
2 1 2 0.2
3 2 1 0.3
4 2 2 0.4
> B <- dcast(A, x~y)
Using v as value column: use value.var to override.
> B
x 1 2
1 1 0.1 0.2
2 2 0.3 0.4
是否可以使用plyr 将A重塑为B ,如果是,将如何进行?
答案 0 :(得分:3)
是的,例如你可以这样做:
library(plyr)
ddply(A,.(x),function(t)setNames(t$v,t$y))
x 1 2
1 1 0.1 0.2
2 2 0.3 0.4
编辑添加关于ddply
使用的一些解释(更好地阅读文档并在SO或网络中查看许多示例):
一般语法如下:
ddply(data.frame, variable(s), function, optional arguments)
.(x)
:我使用.
。这是一个plyr功能。这个功能是
用于捕获变量的名称,而不是它们的当前值。function(t){....}
。一个班轮功能不需要{
。在ddply
内,我通常做的是以下内容:
ddply(mydf, .(var), function(t) browser() )
然后我实时检查...