我写了一个函数来取两个向量,比如x和y,我正在返回另一个带有值的向量: sum(x),sum(y)和sum(x)/ sum(y)。
我写的代码是:
> anotherFunction<-function(x,y){
+ return (c(sum(x),sum(y),(sum(x)/sum(y))))
+ }
我使用了这个函数如下:
summaryBy(年龄〜age.groups,数据= TESTDATA,FUN = anotherFunction(TESTDATA $点击次数,TESTDATA $曝光))
我遇到以下错误:
FUN错误(X [[1L]],...):找不到函数“currFUN”
有人可以指出我的错误并告诉我如何纠正它。提前致谢
答案 0 :(得分:0)
由于评论中提到的原因,我不确定是否可以使用summaryBy
,但建议使用plyr
非常简单:
library(plyr)
anotherFunction<-function(x, y){
return (c(sum.x = sum(x),
sum.y = sum(y),
ratio = (sum(x)/sum(y))))
}
## test data
testdata <- data.frame( Age = sample(18:30, 15, replace=TRUE),
Clicks = sample(10:100, 15, replace = TRUE),
Impressions = sample(10:100, 15, replace = TRUE))
testdata$age.groups <- as.numeric(cut(dat$Age, breaks = 3))
mySummary <- ddply(testdata, .(age.groups), .fun = function(x) {
anotherFunction(x$Clicks, x$Impressions) })
你会得到这样的东西:
> mySummary
age.groups sum.x sum.y ratio
1 1 326 350 0.9314286
2 2 130 202 0.6435644
3 3 293 416 0.7043269