Hi, Thank you all for the the quick response. But there still some questions.
1) nTies = length(x) - length(unique(x)) cannot distinguish vector (1,2,2,2,3), and (1,2,2,3,3).... 2) table(x)[table(x) >1] tells me the right number, but how can I call the numbers from the result of table function? I.e., I want to get the tie number, t and use it in another equation. ________________________________________ From: David Winsemius [dwinsem...@comcast.net] Sent: Monday, November 21, 2011 14:05 To: Peter Langfelder Cc: Hao, Zhaozhe; r-help@r-project.org Subject: Re: [R] count ties after rank? On Nov 21, 2011, at 2:50 PM, Peter Langfelder wrote: > On Mon, Nov 21, 2011 at 11:36 AM, Hao, Zhaozhe <haozhao...@ou.edu> > wrote: >> Hello! >> >> I need to use Kruskal-Wallis test and post-hoc test (Dunn's >> test) for my data. But when I searched around, I only found this >> function: kruskal.test. But nothing for Dunn's test. >> >> So I started to write one myself. But I do not know how to >> count ties in the data frame. I can use for loops but it seems long >> and unnecessary since the rank function actually knows the ties. So >> can anyone give me a hint on how I can "count" the number of ties? >> > > If you just need the overall number of ties in a vector (say x), you > can get it by > > nTies = length(x) - length(unique(x)) And if you wnat to know which ties are which you can do: table(x)[table(x) > 1] > > This will not work if missing data are present, so you will have to > remove those first. > table() would ignore missing data (assuming it were properly NA not- valued). > x <- sample(c(1:10,NA,NA), 20, replace=TRUE) > table(x)[table(x) >1] x 1 4 7 9 10 2 3 2 2 2 > x [1] 7 10 3 9 NA NA 2 4 10 NA NA 4 5 9 6 4 1 1 7 8 -- David Winsemius, MD West Hartford, CT ______________________________________________ R-help@r-project.org mailing list 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.