[R] using functions with multiple arguments in the "apply" family
chipmaney
chipmaney at hotmail.com
Wed Jan 27 20:40:21 CET 2010
typically, the apply family wants you to use vectors to run functions on.
However, I have a function, kruskal.test, that requires 2 arguments.
kruskal.test(Herb.df$Score,Herb.df$Year)
This easily computes the KW ANOVA statistic for any difference across
years....
However, my data has multiple sites on which KW needs to be run...
here's the data:
Herb.df<-
data.frame(Score=rep(c(2,4,6,6,6,5,7,8,6,9),2),Year=rep(c(rep(1,5),rep(2,5)),2),Site=c(rep(3,10),rep(4,10)))
However, if I try this:
tapply(Herb.df,Herb.df$Site,function(.data)
kruskal.test(.data$Indicator_Rating,.data$Year))
>Error in tapply(Herb.df, Herb.df$ID, function(.data)
kruskal.test(.data$Indicator_Rating, :
arguments must have same length
How can I vectorize the kruskal.test() for all sites using tapply() in lieu
of a loop?
--
View this message in context: http://n4.nabble.com/using-functions-with-multiple-arguments-in-the-apply-family-tp1312027p1312027.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list