2016-02-10 5 views
1

Я пытаюсь использовать approx() для прогнозирования точек на кривых внутри ddply, но, похоже, он не работает, как я ожидаю, когда он будет передан ddply.Использование приблизительно в ddply?

Это все работает:

#Fake Data, V3 is my index variable 
df<-data.frame(V1=rep(0:10,3), V2=c(exp(0:10), 2*exp(0:10), 3*exp(0:10)), V3=rep(1:3,each=11)) 

approxy<-function(i){ 
    estim<-approx(x=i$V1, y=i$V2, xout=c(1.1,5.1,9.1))$y 
    return(data.frame(ex1=estim[1], ex5=estim[2], ex9=estim[3])) 
} 

approxy(df[df$V3==1,]) 

Это не:

ddply(df, c("V3"), fun=approxy) 

Это просто плюет оригинальный dataframe обратно. Любые мысли по этой проблеме были бы оценены.

ответ

3

Ваш синтаксис неверен:

ddply(df, c("V3"), .fun=approxy) 

дает

V3  ex1  ex5  ex9 
1 1 3.185359 173.9147 9495.422 
2 2 6.370719 347.8294 18990.844 
3 3 9.556078 521.7442 28486.266 
+0

каждый раз ... каждый раз ... – TBP

Смежные вопросы