我有数百个P值,对应于数据框中的行名。我将这些值放入原始表的新行中:
df1$Pvalues<-lapply(1:nrow(data1), function(i) {
wilcox.test(as.numeric(data1[i, ]), as.numeric(data2[i, ]))$p.value
}))
我找到了前20个最重要的P值,现在需要找出它们对应的列名。我试过了:
which(rownames(df1) %in% c("1.136925e-12"))
但答案是integer(0)
另一种方法是立即打印前20个最重要的P值以及列名,但我所拥有的只是实际的P值。在此命令中,wilcoxon
是数据框的名称,其中我有P值的子集:
head(sort(wilcoxon),20)
我是初学者,任何帮助都会受到赞赏!
答案 0 :(得分:0)
所以,首先你需要找到20个最小的值。例如。对值的向量进行排序,然后索引前20个元素。当您知道要查找的值时,可以使用逻辑向量索引row.names。
x <- sort(df1$Pvalues)[1:20]
row.names(df1)[df1$Pvalues %in% x]