Spearman在R中有序因子之间的rho

时间:2014-07-17 23:38:08

标签: r correlation ordinal

我有两个有序的因素,只是想在他们之间找到Spearman的rho。

然而:

> cor(dat$UEMS.2,dat$SCIM23_SubScore1.2,use="pairwise.complete.obs",method="spearman")

Error in cor(dat$UEMS.2, dat$SCIM23_SubScore1.2, use = "pairwise.complete.obs",  : 
  'x' must be numeric

就像理智检查一样:

> class(dat$UEMS.2)
[1] "ordered" "factor" 
> class(dat$SCIM23_SubScore1.2)
[1] "ordered" "factor" 

如何使用R找到有效因子的spearman rho?

我确实找到了以下内容: Calculate correlation - cor() - for only a subset of columns

提出了同样的问题:R的cor()函数只接受数字数据。这对我来说似乎不对,因为spearman的rho应该能够处理序数变量。有序因子是序数变量。

提前完成。

1 个答案:

答案 0 :(得分:2)

您可以使用pspearman包来处理序数变量:

a <- factor(c(1, 2, 3, 4, 4, 4, 3, 4, 2, 2, 1), ordered=TRUE)
b <- factor(c(1, 4, 2, 2, 4, 1, 1, 4, 4, 3, 3), ordered=TRUE)
library(pspearman)
spearman.test(a, b)
#      Rsquare            F          df1          df2       pvalue            n 
#  0.001015235  0.009146396  1.000000000  9.000000000  0.925904654 11.000000000