同时循环测试多个数据集的Wilcoxon测试

Kwok Yu LIU

我有一个问题,我是否可以针对生成的所有表循环执行Wilcoxon测试。

基本上,我想在每个数据集的2个变量之间进行成对的Wilcoxon测试,并且每个数据集的2个变量位于相同的位置(如xth和yth列)。(对于熟悉生物学的人来说,实际上这是对照和处理过的样品中某些重复元素之类的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语言的新手,非常感谢您的帮助

伊恩·坎贝尔

一种方法是对by = in使用分组data.table

library(data.table)
setDT(data)
data[,wilcox.test(R009_initial_filter_rpkm,
                  normal_filter_rpkm)[c("statistic","p.value")],
     by = TE_Subfamily]
#   TE_Subfamily statistic p.value
#1:       AluYf4       7.5       1

您可以按任意数量的变量分组,例如TE_SubfamilyChr

data[TE_Subfamily %in% filter,
     wilcox.test(R009_initial_filter_rpkm,
                  normal_filter_rpkm)[c("statistic","p.value")],
     by = .(TE_Subfamily,Chr)]
#   TE_Subfamily   Chr statistic p.value
#1:       AluYf4 chr11         0       1
#2:       AluYf4  chr2         1       1
#3:       AluYf4  chr4         0       1
#4:       AluYf4  chr6         1       1

如果您只需要对某些对象进行比较TE_Subfamily,则可以尝试如下操作:

filter <- c("AluYf4")
data[TE_Subfamily %in% filter,
     wilcox.test(R009_initial_filter_rpkm,
                  normal_filter_rpkm)[c("statistic","p.value")],
     by = TE_Subfamily]
#   TE_Subfamily statistic p.value
#1:       AluYf4       7.5       1

对于奖励积分,您可以更正多次测试:

data[TE_Subfamily %in% filter,
     wilcox.test(R009_initial_filter_rpkm,
                  normal_filter_rpkm)[c("statistic","p.value")],
     by = TE_Subfamily][,adjusted.p.value := p.adjust(p.value,method = "bonferroni")][]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Wilcoxon循环测试

来自分类Dev

如何以两个列表的形式测试和训练多个数据集?

来自分类Dev

如何同时测试多个用户?

来自分类Dev

对多个数据集运行相同的测试

来自分类Dev

对多个数据集运行相同的测试

来自分类Dev

在多个数据输入上运行测试(TestNG)

来自分类Dev

如何创建多个数据集,每个数据集在for循环中迭代一次?

来自分类Dev

R-在循环中创建多个数据集的子集

来自分类Dev

SAS%DO循环以检索多个数据集

来自分类Dev

使用循环r加载多个数据集

来自分类Dev

SAS%DO循环以检索多个数据集

来自分类Dev

使用Matlab中的某些共享参数同时拟合多个数据集

来自分类Dev

同时在Windows窗体中运行的多个测试

来自分类Dev

同时测试多个条件(C语言)

来自分类Dev

循环多个数据帧

来自分类Dev

连接Yii中的2个数据库以同时处理测试数据和真实数据

来自分类Dev

配置多个数据库时禁用数据库进行测试

来自分类Dev

如何从测试集的最后一个数据点进行预测

来自分类Dev

ArrayList的IndexOutOfBounds(已测试多个数字)

来自分类Dev

如何通过R下的for循环将Wilcoxon测试应用于矩阵的每一行

来自分类Dev

如何使用多个数据源运行单元测试?

来自分类Dev

Django:多个数据库,路由器和测试框架

来自分类Dev

针对多个数据库版本运行pytest测试套件

来自分类Dev

使用Spring Boot Liquibase测试不适用于多个数据源

来自分类Dev

Fisher测试多个数据条目并在单独的表中提取结果

来自分类Dev

使用SOAPUI在多个测试用例中循环测试步骤

来自分类Dev

用于在R中一次预测多个数据集的For循环

来自分类Dev

如何使用SAS / IML中的do循环制作多个数据集?

来自分类Dev

在Apply循环中为多个数据集创建多平面图

Related 相关文章

  1. 1

    Wilcoxon循环测试

  2. 2

    如何以两个列表的形式测试和训练多个数据集?

  3. 3

    如何同时测试多个用户?

  4. 4

    对多个数据集运行相同的测试

  5. 5

    对多个数据集运行相同的测试

  6. 6

    在多个数据输入上运行测试(TestNG)

  7. 7

    如何创建多个数据集,每个数据集在for循环中迭代一次?

  8. 8

    R-在循环中创建多个数据集的子集

  9. 9

    SAS%DO循环以检索多个数据集

  10. 10

    使用循环r加载多个数据集

  11. 11

    SAS%DO循环以检索多个数据集

  12. 12

    使用Matlab中的某些共享参数同时拟合多个数据集

  13. 13

    同时在Windows窗体中运行的多个测试

  14. 14

    同时测试多个条件(C语言)

  15. 15

    循环多个数据帧

  16. 16

    连接Yii中的2个数据库以同时处理测试数据和真实数据

  17. 17

    配置多个数据库时禁用数据库进行测试

  18. 18

    如何从测试集的最后一个数据点进行预测

  19. 19

    ArrayList的IndexOutOfBounds(已测试多个数字)

  20. 20

    如何通过R下的for循环将Wilcoxon测试应用于矩阵的每一行

  21. 21

    如何使用多个数据源运行单元测试?

  22. 22

    Django:多个数据库,路由器和测试框架

  23. 23

    针对多个数据库版本运行pytest测试套件

  24. 24

    使用Spring Boot Liquibase测试不适用于多个数据源

  25. 25

    Fisher测试多个数据条目并在单独的表中提取结果

  26. 26

    使用SOAPUI在多个测试用例中循环测试步骤

  27. 27

    用于在R中一次预测多个数据集的For循环

  28. 28

    如何使用SAS / IML中的do循环制作多个数据集?

  29. 29

    在Apply循环中为多个数据集创建多平面图

热门标签

归档