【发布时间】:2020-09-13 23:40:34
【问题描述】:
我有一个问题,我是否可以在循环中对所有生成的表进行 Wilcoxon 测试。
基本上,我想在每个数据集的 2 个变量之间进行配对 Wilcoxon 检验,并且每个数据集的 2 个变量位于相同的位置(如第 x 列和第 y 列)。 (对于熟悉生物学的人来说,实际上这是一些重复元素的控制样本和处理样本之间的 RPKM 值)我希望我可以为每个数据集的 Wilcoxon 检验生成一个 p 值表。
我已准备好使用以下代码生成所有表/数据集/数据框,我想我想对每个数据集进行 Wilcoxon 测试,所以我认为我需要继续循环,但我不知道该怎么做:
data=sample_vs_norm
filter=unique(data$family)
for(i in 1:length(filter)){
table_name=paste('table_', filter[i], sep="")
print(table_name)
assign(table_name, data[data$Subfamily == filter[i]])
这是单个数据集的结构: 所以基本上我想在变量“R009_initial_filter_rpkm”和“normal_filter_rpkm”之间做一个 Wilcoxon 测试
Chr Start End Mappability Strand R009_initial_filter_NormalizedCounts
1: chr11 113086868 113087173 1 - 2
2: chr2 24290845 24291132 1 - 11
3: chr4 15854425 15854650 1 - 0
4: chr6 43489623 43489676 1 + 11
normal_filter_NormalizedCounts R009_initial_filter_rpkm
1: 14.569000 0.169752
2: 1.000000 0.992191
3: 14.815900 0.000000
4: 0.864262 5.372810
normal_filter_rpkm FoldChange p.value FDR FoldChangeFPKM
1: 1.236560 0.137278 0.999862671 1.000000000 0.1372776
2: 0.000000 11.000000 0.003173828 0.008149271 Inf
3: 1.704630 0.000000 1.000000000 1.000000000 0.0000000
4: 0.422137 12.727600 0.003173828 0.008149271 12.7276453
structure(list(Chr = structure(1:4, .Label = c("chr11", "chr2",
"chr4", "chr6"), class = "factor"), Start = c(113086868L, 24290845L,
15854425L, 43489623L), End = c(113087173L, 24291132L, 15854650L,
43489676L), Mappability = c(1L, 1L, 1L, 1L), Strand = structure(c(1L,
1L, 1L, 2L), .Label = c("-", "+"), class = "factor"), R009_initial_filter_NormalizedCounts = c(2L,
11L, 0L, 11L), normal_filter_NormalizedCounts = c(14.569,
1, 14.8159, 0.864262), R009_initial_filter_rpkm = c(0.169752,
0.992191, 0, 5.37281), normal_filter_rpkm = c(1.23656,
0, 1.70463, 0.422137), FoldChange = c(0.137278, 11, 0, 12.7276
), p.value = c(0.999862671, 0.003173828, 1, 0.003173828), FDR = c(1,
0.008149271, 1, 0.008149271), FoldChangeFPKM = c(0.1372776, Inf,
0, 12.7276453), class = "data.frame", row.names = c(NA,
-4L))
对不起,如果我使用了不正确的术语,因为我是 R 的新手,非常感谢您的帮助
【问题讨论】:
-
请编辑您的帖子以制作一个可重复的最小示例。见stackoverflow.com/questions/5963269。您必须包含一些示例数据;通常 4-10 行就足够了。包括您希望输出看起来像的示例。意识到:您的听众中几乎没有人知道或关心 RPKM 或 WIlcox 测试,我们不想通过阅读来理解它们。我们希望帮助您了解如何迭代多个单一测试。
-
将所有 Wilcox 代码封装在一个函数中,并确保它正确地进行了一次测试。然后编辑您的帖子,询问我们如何遍历所有案例。
-
嗨郭,欢迎来到 Stack Overflow。我同意大卫的观点,你的问题应该浓缩成更短的内容,如果我们有一个可重复的例子,它会更容易提供帮助。但是,我不同意引入问题是没有用的。 how to ask a good question 帮助页面甚至谈到了介绍。
-
非常感谢您的评论,我对问题的设置感到抱歉,因为我对编码/R 等真的很陌生,因为我以前通常做湿实验室,我不太清楚如何用程序员的语言进行交流。如果可以的话,我会尝试修复它... thx
-
我已经对问题进行了更改,请随时发表任何评论/建议/批评,以便我可以向你们学习,非常感谢!!
标签: r loops statistics filtering rna-seq