R中函数调用出错

时间:2014-02-25 22:26:07

标签: r

我写了一个函数来取两个向量,比如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”

有人可以指出我的错误并告诉我如何纠正它。提前致谢

1 个答案:

答案 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