gpt4 book ai didi

r - R-x 中的 Wilcoxon 检验必须是数字错误

转载 作者:行者123 更新时间:2023-12-04 21:39:35 27 4
gpt4 key购买 nike

我的 wilcox.test 有问题在 R。
我的数据对象是一个矩阵,其中第一列包含一个名称,所有其他列包含一个(基因表达)测量值,它是数字:

str(myMatrix)
'data.frame': 2000 obs. of 143 variables:
$ precursor : chr "name1" "name2" "name3" "name4" ...
$ sample1: num 1.46e-03 2.64e+02 1.46e-03 1.46e-03 1.46e-03 ...
$ sample2: num 1.46e-03 1.91e+02 1.46e-03 1.46e-03 1.46e-03 ...
$ sample3: num 1.46e-03 3.01e+02 1.46e-03 1.46e-03 4.96 ...

对于所有 2000 行,我想测试矩阵的 2 个给定部分之间是否存在差异。我用 4 种不同的方式尝试了这个:
wilcox.test(as.numeric(myMatrix[i,2:87],myMatrix[i,88:98]))$p.value
#[1] 1.549484e-16

wilcox.test(myMatrix[i,2:87],myMatrix[i,88:98])$p.value
#Error in wilcox.test.default(myMatrix[i, 2:87], myMatrix[i, 88:98]) :
#'x' must be numeric

t.test(as.numeric(myMatrix[i,2:87],myMatrix[i,88:98]))$p.value
#[1] 0.2973957

t.test(myMatrix[i,2:87],myMatrix[i,88:98])$p.value
#[1] 0.3098505

所以如你所见,只有当我使用 as.numeric()在已经是数字的值上,我得到的结果没有 Wilcoxon 检验的错误消息,但结果与 t.test 完全不同。结果即使他们不应该。

使用在线工具手动验证显示 t.test结果使用 as.numeric()值(value)观是错误的。

关于如何解决这个问题并进行正确的 Wilcoxon 检验的任何建议?如果您需要更多信息,请告诉我。

最佳答案

实际上,myMatrix [i, 2:87] 仍然是一个 data.frame。请参阅以下示例。

> myMat  
fir X1 X2 X3 X4
1 name1 1 5 9 13
2 name2 2 6 10 14
3 name3 3 7 11 15
4 name4 4 8 12 16
> class(myMat[1, 2:4])
[1] "data.frame"
> as.numeric(myMat[1, 2:4])
[1] 1 5 9

将您的数据更改为真正的矩阵将解决您的问题。
> myMat_01 <- myMat[, 2:5]  
> rownames(myMat_01) <- myMat$fir
> myMat_01 <- as.matrix(myMat_01)
> class(myMat_01[1, 2:4])
[1] "integer"

关于r - R-x 中的 Wilcoxon 检验必须是数字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30033178/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com