On 24 Sep 2015, at 15:07 , Agustin Lobo <aloboa...@gmail.com> wrote:
> I would like to make sure that I'm using friedman.test() correctly, > because I have to reformat my data set to fulfil the requirement > "exactly one observation in y for each combination of levels of groups > and blocks" mentioned > in the help page of function friedman.test(). > > Assuming data from > http://www.inside-r.org/packages/cran/muStat/docs/mu.kruskal.test > > treatments <- factor(rep(c("Trt1", "Trt2", "Trt3"), each=4)) > people <- factor(rep(c("Subj1", "Subj2", "Subj3", "Subj4"), 3)) > y <- c(0.73,0.76,0.46,0.85,0.48,0.78,0.87,0.22,0.51,0.03,0.39,0.44) > midata <- data.frame(treatments,people,y) > midata[1:10,] > > I would do as follows: > > Test among treatments > friedman.test(y ~ treatments|people,data=midata) > Test among subjects > friedman.test(y ~ people|treatments,data=midata) > > Is this correct? Seems so. The tricky bit is to get the factors to replicate in the right way (notice also the gl() function, by the way). A way to check is > matrix(c(0.73,0.76,0.46,0.85,0.48,0.78,0.87,0.22,0.51, + 0.03,0.39,0.44), ncol=3) [,1] [,2] [,3] [1,] 0.73 0.48 0.51 [2,] 0.76 0.78 0.03 [3,] 0.46 0.87 0.39 [4,] 0.85 0.22 0.44 > with(midata,tapply(y,list(people, treatments), mean)) Trt1 Trt2 Trt3 Subj1 0.73 0.48 0.51 Subj2 0.76 0.78 0.03 Subj3 0.46 0.87 0.39 Subj4 0.85 0.22 0.44 You could also have used this construction: > m <- matrix(c(0.73,0.76,0.46,0.85,0.48,0.78,0.87,0.22,0.51, + 0.03,0.39,0.44), ncol=3) > as.data.frame(as.table(m)) Var1 Var2 Freq 1 A A 0.73 2 B A 0.76 3 C A 0.46 4 D A 0.85 5 A B 0.48 6 B B 0.78 7 C B 0.87 8 D B 0.22 9 A C 0.51 10 B C 0.03 11 C C 0.39 12 D C 0.44 It can be elaborated: Adding (named) dimnames to the matrix/table will get names and levels right for the two factors, and you might also want responseName="y". -pd -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.