R-使用ddply汇总自定义函数中的多个值

R-使用ddply汇总自定义函数中的多个值,r,function,dataframe,plyr,R,Function,Dataframe,Plyr,是否有一种方法可以将ddply与返回多个值并将这些值组合到数据帧的单独列中的函数一起使用?我创造了一个虚构的例子来说明我的意思 #random data ID <- rep(paste0("ID", 1:10), each=10) x <- c(1:10) y <- x+rnorm(100) df<-data.frame(ID=ID, x=x,y=y) #function that returns two values myfunc <- function(y=y

是否有一种方法可以将
ddply
与返回多个值并将这些值组合到数据帧的单独列中的函数一起使用?我创造了一个虚构的例子来说明我的意思

#random data
ID <- rep(paste0("ID", 1:10), each=10)
x <- c(1:10)
y <- x+rnorm(100)
df<-data.frame(ID=ID, x=x,y=y)

#function that returns two values
myfunc <- function(y=y, x=x){
  m <- summary(lm(y~x))
  c1<-m$fstat[1]
  c2<-m$coefficients[1]
  c(c1,c2)
 }

 ddply(df, .(ID), summarize, myfunc(y=y,x=x))
我想得到的是:

     ID            c1            c2
1   ID1  69.477838332  -0.279584776
2  ID10 396.792689197  -0.359578656
我知道我可以更改ddply的输出以获得所需的结果,但我想知道在我的函数或ddply调用中是否有任何可以更改的内容可以提供所需的输出。
谢谢你的帮助

这看起来像是一个从长到宽的重塑。只需将函数的最后一行更改为
cbind(c1,c2)
谢谢@Sotos!要从线性模型中提取系数,请参见的示例。
     ID            c1            c2
1   ID1  69.477838332  -0.279584776
2  ID10 396.792689197  -0.359578656