将分组数据帧传递给dplyr中的自有函数

将分组数据帧传递给dplyr中的自有函数,r,plyr,dplyr,R,Plyr,Dplyr,我正试图从plyr转到dplyr。然而,我似乎仍然不知道如何在链式dplyr函数中调用自己的函数 printFunction <- function(dat) print(dat) df <- data.frame(a = 1:6, b = 1:2) 我有一个带因式分解ID变量和顺序变量的数据帧。我想按ID分割帧,按order变量排序,并在新列中添加一个序列 我的plyr函数如下所示: f <- function(x) cbind(x[order(x$order_variab

我正试图从plyr转到dplyr。然而,我似乎仍然不知道如何在链式dplyr函数中调用自己的函数

printFunction <- function(dat) print(dat)
df <- data.frame(a = 1:6, b = 1:2)
我有一个带因式分解ID变量和顺序变量的数据帧。我想按ID分割帧,按order变量排序,并在新列中添加一个序列

我的plyr函数如下所示:

f <- function(x) cbind(x[order(x$order_variable), ], Experience = 0:(nrow(x)-1))
data <- ddply(data, .(ID_variable), f)
f%
变异(经验=0:(n()-1))

然而,我仍然很想学习如何将分组的变量拆分到不同的表中,以在dplyr中拥有自己的函数。

对于那些从google获得这些函数的人来说。假设您编写了自己的打印函数

printFunction <- function(dat) print(dat)
df <- data.frame(a = 1:6, b = 1:2)
打印整个数据。要让dplyr打印按分组的多个表,应使用
do

df %>% 
    group_by(b) %>% 
    do(printFunction(.))

您使用的是R和dplyr的哪个版本?我认为我们需要一个可复制的数据集@nrussell我不认为这个问题是抛出的错误,只是不是预期的结果。我发现这个问题是因为我自己也有类似的问题。我做了一些非常类似的
d%>%groupby(var1,var2)%>%summary(blah=f(.)
。我返回了一个组数据帧,但'blah'的每个条目都是相同的。我认为这是如上所述;由于某种原因,传递整个df,而不是像
plyr
这样的分组“块”。
df %>% 
    group_by(b) %>% 
    printFunction(.)
df %>% 
    group_by(b) %>% 
    do(printFunction(.))