【问题标题】:Identifying Number of Values in a Specific Range识别特定范围内的值的数量
【发布时间】:2015-01-09 21:20:41
【问题描述】:

我对 R 比较陌生,并且有一个关于确定处于某个范围内的值的数量的问题。

我有一个数据表,其中列名称为细胞类型(20 种细胞类型),然后是每种细胞类型的 23000 个基因的行名及其甲基化值(0 到 1 之间)。我在下面提供了一个数据集的示例(我希望它很清楚!)

                 MCF-7     T47D     Kuramochhi   CAOV4      JHOS4
cg00964109 0.03425448 0.042629239 0.08461351 0.04095205 0.039999  
cg00967316 0.44065041 0.800911854 0.35689046 0.63291139 0.812005277  
cg00968475 0.64207018 0.910031909 0.06120248 0.84703547 0.084849946

我想做的是运行一个循环(或者如果可能的话,使用更简单的方法!)来识别甲基化值在以下范围内的基因数量:0-0.0999、0.1-0.1999、0.2-0.29999 等每种细胞类型最多 0.9-1。我还想对整个数据表进行类似的分析(即甲基化值在上述范围内的基因数量)。

【问题讨论】:

    标签: r range grouping


    【解决方案1】:

    这是一种方法:

    R> apply(Data,2,function(x){
          table(cut(x,seq(0,1,.1),right=F))
      })
              MCF-7 T47D Kuramochhi CAOV4 JHOS4
    [0,0.1)      99  105        102   103   100
    [0.1,0.2)    99   90        116   105   102
    [0.2,0.3)    98  103         93    92    97
    [0.3,0.4)   108   91         91    93   105
    [0.4,0.5)   103  114        104   101   107
    [0.5,0.6)   100  111         77    97   105
    [0.6,0.7)    98   89        110   103   102
    [0.7,0.8)    97  100        110    81   109
    [0.8,0.9)   106  112         90   110    94
    [0.9,1)      92   85        107   115    79
    

    数据:

    set.seed(123)
    Data <- matrix(runif(5000),ncol=5,
                   dimnames=list(
                     paste0("gene_",1:1000),
                     c('MCF-7','T47D','Kuramochhi',
                       'CAOV4','JHOS4')))
    

    【讨论】:

      【解决方案2】:

      这至少应该让你开始:

      x <- read.table(text="MCF-7     T47D     Kuramochhi   CAOV4      JHOS4
      cg00964109 0.03425448 0.042629239 0.08461351 0.04095205 0.039999  
      cg00967316 0.44065041 0.800911854 0.35689046 0.63291139 0.812005277  
      cg00968475 0.64207018 0.910031909 0.06120248 0.84703547 0.084849946")
      
      apply(x, 1, function(value) length(which(value <= 0.0999)))
      apply(x, 1, function(value) length(which(value >= 0.1 & value <= 0.1999)))
      apply(x, 1, function(value) length(which(value >= 0.2 & value <= 0.2999)))
      

      等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多