Anu*_*hra 2 if-statement r dataframe
我正在处理基因组数据,并且在核苷酸位置及其保守性分数(在数据框中)中有专栏。我有关于哪些核苷酸位置范围是内含子和哪些是外显子的数据。我想创建第三列,并能够指定哪些区域是内含子(如“ INTRON”),哪些区域是外显子(如“ EXON”)。
例如,假设在1-70000核苷酸位置,我想将10000-10200、17800-21000、43000-54000指定为内含子,并在另一列中保留为外显子(假设数据)。有没有一种方法可以从ifelse函数的列中指定多个值范围,因为这或多或少会解决我的问题。有更好的方法吗?
假设您有这样的数据框:
d <- data.frame(position=round(runif(100, 1, 70000)))
Run Code Online (Sandbox Code Playgroud)
您可以组合逻辑运算符:
d$status <- ifelse(( d$position >= 1000 & d$position <= 10200) | (d$position >= 17800 & d$position <= 21000) | (d$position >= 43000 & d$position <= 54000), 'INTRON', 'EXON')
Run Code Online (Sandbox Code Playgroud)
或者您可以使用嵌套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')))
Run Code Online (Sandbox Code Playgroud)