> I am analyzing trend  using Mann-kendall  test for 31 independent sample, each
> sample  have 34 years dataset.  I supposed to find Kendall “tau” for each
> sample. The data is arranged in column wise (I attached  the data).To find
> Kendall tau, I wrote R script as:
> ...
> Anyone can tell me how can I get orderly displayed  “tau” value? 

Usually, in R, a hypothesis test returns an object, and you can extract an 
individual element of that object.

MannKendall seems to be no exception. Looking at the help page, a MannKendall 
test returns...
" A list with class Kendall.
tau     Kendall’s tau statistic
sl      two-sided p-value
S       Kendall Score
D       denominator, tau=S/D
varS    variance of S"

To get just tau, say something like MannKendalltau[i]<-MannKendall(y[,i])$tau

But your code is a bit of a mess....
MannKendalltau<- numeric(nc) simply makes MannKendalltau a single integer equal 
to nc; that doesn't look sensible when the next thing you do is treat 
MannKendalltau as a vector. R's been kind to you and extended MannKendalltau 
when you tried to add things to later, non-existent, elements, but it clearly 
wasn't the right thing to do. Look up ?numeric, and then look up ?vector for 
next time you want to set up an empty vector.

Second, since MannKendall(y[,i]) ) returns a list object of class Kendall, 
MannKendalltau[i]<-MannKendall(y[,i]) assigns a whole  object containing 5 
values to each new element of your MannKendalltau. So your result is a list of 
lists.

Finally, you don’t need a loop at all. On a data frame, sapply would work 
nicely, so (although I've not tested it) something like

sapply(desta[,2:nc], 2, function(x) ManKendall(x)$tau)

ought to do the whole thing in one shot and package it nicely into a named 
vector while it's about it.

S Ellison


*******************************************************************
This email and any attachments are confidential. Any use, copying or
disclosure other than by the intended recipient is unauthorised. If 
you have received this message in error, please notify the sender 
immediately via +44(0)20 8943 7000 or notify postmas...@lgcgroup.com 
and delete this message and any copies from your computer and network. 
LGC Limited. Registered in England 2991879. 
Registered office: Queens Road, Teddington, Middlesex, TW11 0LY, UK
______________________________________________
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.

Reply via email to