当前位置: 首页 > 工具软件 > Writ > 使用案例 >

R语言进行多重样本t检验代码问题

戴高远
2023-12-01

文章来源https://blog.csdn.net/hill_night/article/details/44046307

详细内容

这里给出来一个利用R语言分析样品之间的t检验和秩和检验的一个例子,先贴出来代码,后面再解释

具体代码如下:

data<-read.table("test1.txt",header=TRUE)   #data<-read.csv("GSE32424_RPKM.csv",header=TRUE)  #这里读入数据 
n<-c(1:nrow(data))   #这里给一个索引,是写for语言的一个个人癖好,其实可以直接写到下面for里面去
p.t<-rep(NA,nrow(data))  #建立一个t检验的p值空向量
p.w<-rep(NA,nrow(data))  #建立一个秩和检验的p值空向量,里面赋的是NA
for ( i in n){ 
p.w[i]<- wilcox.test(as.numeric(data[i,2:6]),as.numeric(data[i,7:11]))$p.value;    #p.w里面输入值
p.t[i] <-t.test(data[i,2:6],data[i,7:11])$p.value;    #p.t赋值
 }
p.w<-as.numeric(p.w)  #在操作的过程中发现秩和检验的包输出来不是列表的形式,这里变成列表
fdr.w<-p.adjust(p.w,method="fdr",length(p.w))    #p.adjust就是计算FDR的包,这个可要记得了
fdr.t<-p.adjust(p.t,method="fdr",length(p.t))
res<-cbind(data,p.t,fdr.t,p.w,fdr.w)    #把结果合并起来
write.csv(res,file="res.csv")     #输出csv文件
以上便是所用到的代码了,下面给出来测试数据,在看本文的时候可以直接拷过去贴到工作目录


Gene 4N 5N 6N 8N9N 2T 3T 6T 8T9T
GAPDH 1811.13 1779.28 1180.25996.99 1454.871799.66 3048.242084.11 1251.333222.28
S100A9 25277.2433194.14 18637.5426072.54 26239.093084.49 7684.1289.66 82.62515.21
FTL 471.33 354.6 259.01 257.9 443.28 1130.17 1465.381319.74 1326.512475.93
S100A8 18248.9432083.04 18079.4623749.33 21148.972334.64 5879.4339.09 25.76533.7
LOC100288418 814.07902.93 502.09811.05 512.571852.77 1563.131006.77 1556.64959.92
KRT6A 3807.5 4854.41 1596.093991.05 3221.79988.59 2389.261349.69 1339.68882.54
KRT5 1745.16 821.04 941.71 1191.85 758.8 2324.42 1453.491335.81 1306.65567.58
RPS18 1570.25 1487.06 1600.961242.66 1117.041272.05 975.261187.09 1484.85581.08
ANXA1 9171.99 14565.69 8599.7611900.67 12276.11377.27 1565.95553.39 3257.22584.87
TPT1 2083.54 3018.54 2037.222481.17 2366.61124.4 919.421267.48 994.65545.43
TMSB4X 523.54 673.44 449.08 470.51 461.43 1093.51 1194.98748.15 942.51180.03
TMSB10 493.26 416.65 288.8 543.33 476.03 592.82 882.86 827.27 597.58 1015.88
B2M 377.03 406.09 382.77 297.77 195.4 1192.96 538.371008.24 698.761224.2
RPL35A 406.81 610.8 454.92 438.2 389.41 752.72 863.15 675.7 995.81 726.61
RPS17 907.34 994.95 844.3 756.88 717.88 1132.44 546.37876.2 1116.56451.31
RPS2 912.88 773.46 802.7 596.16 527 964.6 355.32 680.81 1026.22561.21
RPS6 984.47 1179.33 1010.77900.74 759.061053.74 780.03904.94 1264.66354.18
FABP5 1452.1 2212.45 1265.07956.39 728.21716.21 3295.76111.17 123.8328.78
RPS20 700.24 837.47 690.78 547.98 429.96 729.37 1106.82886 965.82423.35
RPLP0 1245.78 1219.24 1091.01910.94 856.51956.4 523.67620.61 1051.96496.44
RPL37A 814.53 1030.49 1008.5905.22 769.54738.65 728.81526.05 1222.33475.77
————————————————
版权声明:本文为CSDN博主「夜丘」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hill_night/article/details/44046307

问题:

我按照原博主的代码运行,发现第一是TXT文件无法读取,然后我改了代码:

data <- read.table("test1.txt",sep="\t",head=TRUE)

data <- read.table("test1.txt",sep="\t",head=TRUE);data

改代码后可以读取了,但是进行t检验时,出现了错误:

Error in if (stderr < 10 * .Machine$double.eps * max(abs(mx), abs(my))) stop("data are essentially constant") : 
  需要TRUE/FALSE值的地方不可以用缺少值
此外: Warning message:
In mean.default(x) : argument is not numeric or logical: returning NA

后面的代码不知道怎么解决,请问有经验的人能帮助下吗。

 类似资料: