I want to obtain p-values for Parker's Tau-U (Parker et al., 2011). which is a measure based on Kendall's Tau.

Tau-U is related to Kendall's Tau in such a way that it's possible to translate a Tau-U value to a Kendall's Tau value.

This means that I can use the Kendall() function in the Kendall package in R to compute p-values for Tau-U. The only problem is that the Kendall() function only accepts two equal length data vectors for which it computes Kendall's Tau. However, I want to input a Kendall's Tau value directly (the Tau-U value expressed as a Kendall's Tau value) and then obtain a p-value for it.

Does any know if there are any R-functions that will allow me to input a Kendall's Tau value directly? There is other (non-free) software available that will do this for me (e.g. StatsDirect) but I need to find a way in R because I need the p-values for implementation in a permutation test (based on my own code).

Thanks in advance!

Regards. Bart

  • $\begingroup$ Without knowledge of the sample size, it is not possible even to provide some reasonable approximation. $\endgroup$
    – Michael M
    Jul 28, 2015 at 16:52
  • $\begingroup$ Have you given a look to pKendall from the library 'SuppDists' $\endgroup$
    – user342957
    Dec 9, 2021 at 18:25

1 Answer 1


My initial answer was incorrect as pointed out by Silverfish. After some review of the tau variations and looking at the paper the test statistic is calculated independently from the tau value. As such, it doesn't appear to be possible to directly use the tau value to calculate the p-value. You will need to calculate the statistic from the data. You will therefore need to review the paper to see how the calculation of the statistic differs from the other tau variations.

  • $\begingroup$ I would add that although the original answer was incorrect, it still might be instructive to have a look at what R is doing when it finds the p-value for Tau; as @cdeterman said in his first answer, this can be done using getAnywhere(cor.test.default) $\endgroup$
    – Silverfish
    Dec 9, 2014 at 21:59
  • $\begingroup$ Thanks, that's a very good suggestion. I think i'm able to construct a function that does what I want from the source code from cor.test(). I only have one problem: at one point in the source code there is this line: pkendall <- function(q, n) .Call(C_pKendall, q, n) . However I can't seem to get the .Call(C_pKendall, q, n) working. Whenever I execute this line, R says that he can't find C_pKendall. Does anyone have any advice on how to fix this? It appears to be a function that is being called from C. $\endgroup$
    – Bart
    Dec 10, 2014 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.