【问题标题】:Adding multiple integer ranges of values from a column in the ifelse statement in R从R中ifelse语句中的列中添加多个整数范围的值
【发布时间】:2013-09-08 15:41:00
【问题描述】:

我正在处理基因组数据,并且我有关于核苷酸位置及其保护分数的列(在数据框中)。我有关于哪些核苷酸位置范围是内含子和哪些是外显子的数据。我想创建第三列,并能够指定哪些区域是内含子(如“INTRON”),哪些是外显子(如“EXON”)。

例如,假设在核苷酸位置 1-70000 中,我想指定 10000-10200、17800-21000、43000-54000 作为内含子,其余作为外显子在另一列中(假设数据)。有没有办法从 ifelse 函数的列中指定多个值范围,因为这或多或少会解决我的问题。有没有更好的方法?

【问题讨论】:

  • 我认为更多的是处理范围数据而不是添加列。也就是说,OP 应该查看 BioC 包“iRanges”。搜索 SO for : { [r] iRanges } 应该很​​有帮助,因为有很多工作示例。

标签: r if-statement dataframe


【解决方案1】:

假设你有这样的数据框:

 d <- data.frame(position=round(runif(100, 1, 70000)))

您可以组合逻辑运算符:

 d$status <- ifelse(( d$position >= 1000 & d$position <= 10200) | (d$position >= 17800 & d$position <= 21000) | (d$position >= 43000 & d$position <= 54000), 'INTRON', 'EXON')

或者你可以使用嵌套的 ifelse:

d$status <- ifelse(d$position >= 1000 & d$position <= 10200, 'INTRON', felse(d$position >= 17800 & d$position <= 21000, 'INTRON', ifelse(d$position >= 43000 & d$position <= 54000, 'INTRON', 'EXON')))

【讨论】:

    【解决方案2】:

    假设你有一个表包含一些信息,包括 bmi, 您可以使用此代码

    x$normal_bmi=18 & x$bmi

    然后

    表(x$normal_bmi)

    0 1

    40 26

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多