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

时间:2017-03-24 19:32:09

标签: 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, 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           ..1
1   ID1  69.477838332
2   ID1  -0.279584776
3  ID10 396.792689197
4  ID10  -0.359578656

我想得到的是:

     ID            c1            c2
1   ID1  69.477838332  -0.279584776
2  ID10 396.792689197  -0.359578656

我知道我可以更改ddply的输出以获得所需的结果,但我想知道我的函数或ddply调用中是否有任何可以改变的东西可以提供所需的输出。 谢谢你的帮助!

0 个答案:

没有答案