3

我有两个有序因子,只是想在它们之间找到 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?

我确实发现了以下内容: 计算相关性 - cor() - 仅针对列的一个子集

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

提前谢谢。

4

1 回答 1

4

您可以使用该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 
于 2014-07-18T00:27:51.093 回答