打算把实验室的数据进行分析。需要得到显著性的p value。使用Wilcox检验来检验对照组和试验组是否存在显著性差异。但是,Wilcox检验就的返回值result是个列表。其中result[3]是p value,但是进入循环后,p值都不变了,就算删除result后p值也是第一组数据的p值,不再更新。可是,可以进入判断语句,也可以得出判断结果。只不过满足条件后都是等于第一组数据的p值
data=read.csv("m6A.csv",header = T)
p <- 1:length(data$site)
for(i in 1:length(data$site)){
ref <- c(data$sample1_ref_m6a[i],data$sample2_ref_m6a[i],data$sample3_ref_m6a[i],data$sample4_ref_m6a[i],data$sample5_ref_m6a[i])
alt <- c(data$sample1_alt_m6a[i],data$sample2_alt_m6a[i],data$sample3_alt_m6a[i],data$sample4_alt_m6a[i],data$sample5_alt_m6a[i])
result <- wilcox.test(alt,ref,alternative = 'greater',paired = T)
if(result[3] < 0.05 ){
p[i] <- result[3]
rm(list = "result")
}
else{
p[i] <- NA
}
}
differntially <- unlist(p)
with_p <- data.frame(data$site,data$IP.1_ref,data$IP.1_alt,data$IP.2_ref,data$IP.2_alt,
data$IP.3_ref,data$IP.3_alt,data$IP.4_ref,data$IP.4_alt,
data$IP.5_ref,data$IP.5_alt,data$input.1_ref,data$input.1_alt,
data$input.2_ref,data$input.2_alt,data$input.34_ref,data$input.34_alt,
data$input.5_ref,data$input.5_alt,data$sample1_ref_m6a,data$sample2_ref_m6a,
data$sample3_ref_m6a,data$sample4_ref_m6a,data$sample5_ref_m6a,
data$sample1_alt_m6a,data$sample2_alt_m6a,data$sample3_alt_m6a,data$sample4_alt_m6a,data$sample5_alt_m6a,
differntially)
colnames(with_p) <- c('site','IP.1_ref','IP.1_alt','IP.2_ref','IP.2_alt','IP.3_ref','IP.3_alt','IP.4_ref','IP.4_alt',
'IP.5_ref','IP.5_alt','input.1_ref','input.1_alt',
'input.2_ref','input.2_alt','input.34_ref','input.34_alt',
'input.5_ref','input.5_alt','sample1_ref_m6a','sample2_ref_m6a',
'sample3_ref_m6a','sample4_ref_m6a','sample5_ref_m6a',
'sample1_alt_m6a','sample2_alt_m6a','sample3_alt_m6a','sample4_alt_m6a','sample5_alt_m6a',
'differntially')
write.csv(with_p,'m6a_with_p-value=0.05.csv',col.names = F)
请问我的代码是哪里没有注意呢?感谢解惑!