我有这个数据框,如下面的代码所示。我想要做的是打印5种蛋白质,其中样品1(任何样品1英寸,可以是之后的任何字母)和样品2(任何样品2英寸,可以是之后的任何字母)之间的差异最大。 p值需要从wilcoxon检验中计算出来。
我想对这些数据进行wilcoxon非参数检验以计算p值,然后根据此值计算p值。 我不确定如何根据样本名称对数据进行子集化,只要数字相同,就可以将1或2中的任何一个与之匹配,而不管后面的字母是什么。我不知道从哪里开始编码以及如何为样本1正确地将数据子集合在一起,然后样本2。
为了使事情更清楚,我想分别对所有样品1和2进行wilcoxon测试。然后使用此p值打印最显着不同的前5种蛋白质。
非常感谢任何帮助,谢谢。
protein<-c("COX4", "LJK2", "JJ2", "HK1", "3DFG", "JE3","LOP2","PQE8")
sample1a<-c(2.01, 1.58, 1.49,2.09, 2.11, 1.54, 1.39, 1.49)
sample1b<-c(2.04, 1.57, 1.47,2.04, 2.10, 1.51, 1.40, 1.49)
sample2a<-c(2.07, 1.52, 1.59,2.19, 1.41, 1.51, 1.36, 1.41)
sample2b<-c(2.01, 1.48, 1.43,2.04, 2.01, 1.44, 1.49, 1.53)
sample3a<-c(2.11, 1.48, 1.49,2.09, 2.11, 1.54, 1.39, 1.48)
sample3b<-c(2:21, 1.38, 1.29,2.39, 2.07, 1.59, 1.29, 1.38)
df<-data.frame(protein,sample1a,sample1b,sample2a,sample2b, sample3a, sample3b)
答案 0 :(得分:0)
首先,您发布的数据不正确,在向量sample3b
中,您的值为:
而不是小数点。另外,为什么字符?
您可以使用以下内容进行所有成对列测试。
# First convert to numeric
df2 <- as.data.frame(sapply(df[-1], function(x) as.numeric(as.character(x))))
# Now define a function to be applied to pairs of columns
fun <- function(x, y) wilcox.test(x, y, exact = FALSE)$p.value
# apply the function above
result <- sapply(df2, function(x) sapply(df2[-1], fun, x))
any(result < 0.05) # no p-value is significant
#[1] FALSE