# [R] programming advice

Martin Maechler maechler at stat.math.ethz.ch
Fri Jun 23 11:15:29 CEST 2006

```>>>>> "Fred" == Fred JEAN <frederic.jean at univ-brest.fr>
>>>>>     on Thu, 22 Jun 2006 17:58:06 +0200 writes:

Fred> Dear R users
Fred> I want to compute Kendall's Tau between two vectors x and y.
Fred> But x and y  may have zeros in the same position(s) and I wrote the
Fred> following function to be sure to drop out those "double zeros"

"cor.kendall" <- function(x,y) {
nox <- c()
noy <- c()
#
for (i in 1:length(x)) if (x[i]!= 0 | y[i] != 0)
nox[length(nox)+1]<- x[i]
for (i in 1:length(y)) if (x[i]!= 0 | y[i] != 0)
noy[length(noy)+1]<- y[i]
#
res.kendall <- cor.test(nox,noy,method = "kendall",exact=F)
return(list(x=nox,y=noy,res.kendall,length(nox)))
}

Fred> Do you know a more elegant way to achieve the same goal ?
Fred> (I'm sure you do : it's a newbie's program actually)

"Ronggui" already helped you with your main question.

Just a note:
Why are you making the detour of calling cor.test(.)
when
cor(nox, noy,  method = "kendall")

is probably all you need?

```