R中的函数调用出错
我已经编写了一个函数来获取两个向量,比如x和y,我将返回另一个带值的向量: 总和(x)、总和(y)和总和(x)/总和(y) 我写的代码是:R中的函数调用出错,r,R,我已经编写了一个函数来获取两个向量,比如x和y,我将返回另一个带值的向量: 总和(x)、总和(y)和总和(x)/总和(y) 我写的代码是: > anotherFunction<-function(x,y){ + return (c(sum(x),sum(y),(sum(x)/sum(y)))) + } >另一个函数出于评论中提到的原因,我不确定使用summaryBy是否可行,但使用建议的plyr非常简单: library(plyr) anotherFunction<-fun
> anotherFunction<-function(x,y){
+ return (c(sum(x),sum(y),(sum(x)/sum(y))))
+ }
>另一个函数出于评论中提到的原因,我不确定使用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) })
一般来说,FUN
应该只是函数的名称。但不管怎样,我认为一个有两个参数的函数不会像你想象的那样工作。@noah:是的。多比号的summaryBypackage@joran:我是R的新手,所以我写的代码很可能不是推荐的格式。我想在RI中编程时,我必须改变思考和理解代码的方式。我不太使用doBy,但我相信,summaryBy
旨在为公式左侧的每个变量生成摘要,并按公式右侧的变量分组。您可能会发现plyr中的ddply
更加直观。
> 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