我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 ...
Run Code Online (Sandbox Code Playgroud)
对于所有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
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,只有当我使用as.numeric()已经存在的数值时,我得到的结果没有用于Wilcoxon测试的错误消息,但结果完全不同于t.test结果,即使它们不应该.
使用在线工具手动验证表明t.test使用as.numeric()值的结果是错误的.
关于如何解决这个问题并进行正确的Wilcoxon测试的任何建议?如果您需要更多信息,请告诉我.
r ×1