我刚刚发现了这个很棒的plyr
包裹,正在试一试。
我有一个问题如下:有没有办法从内部访问分组变量d_ply
?
假设我有一个df
带有列的数据框x,y,z
,我想为每个z
值x
与y
. 如果我执行以下操作:
plotxy = function(df, ...) {plot(df$x, df$y, ...)}
d_ply(df, .(z), plotxy(df, main=.(z)))
那么显示在图上的标题都是“z”,而不是 z 变量的值。有没有办法从内部访问这些值d_ply
?
编辑:正如@Justin 指出的那样,上述表述是错误的,因为我将整个df
to传递给plotxy
. 因此这条线
d_ply(df, .(z), plotxy(df, main=.(z)))
应该
d_ply(df, .(z), plotxy, main=.(z))
为了使我原来的问题有意义(我想这也是@joran 所暗示的)。
然而,我意识到了另一件事。即使被df
切片,函数接收的子数据帧仍然有一列——只是总是具有相同的值。因此,问题显然可以解决如下:z
d_ply
z
plotxy = function(df, ...) {plot(df$x, df$y, main=df$z[1])}
d_ply(df, .(z), plotxy)