繁体   English   中英

在 r 中使用 if else 语句

[英]Using if else statement in r

我只是 R 的新手,只是在努力编写 function 以获得决赛桌,如决赛桌所示。 我有如下所示的两个不同片段的数据

chr  start  end  gene1  chr   start  end   gene2
chr1  2380  2370   0    chr1  3540   3589  0.03
chr2  4560  3458   0    chr2  4280   8790  0
chr2   4678  9846  1   chr2  4567   8648   1 
chr2  4321   5679  0.04 chr2  4621   5678  0.002

我想写一个 function 循环遍历数据,它在gene1和gene1的每一行中看到0,它应该在finalgene中报告0,但是如果gene1和gene2有一小部分,它应该在相应的列中报告1,并且在哪里它在任一列中看到 1 或分数,它应该报告 1,如下面的最终文件所示

chr  start  end  gene1  chr   start  end   gene2 finalgene
chr1  2380  2370   0    chr1  3540   3589  0.03.  1
chr2  4560  3458   0    chr2  4280   8790  0      0
chr2   4678  9846  1   chr2  4567   8648   1      1
chr2  4321   5679  0.04 chr2  4621   5678  0.002  1

如果gene1gene2不等于0,您可以分配1,否则分配0。

df$finalgene <- as.integer(df$gene1 != 0 | df$gene2 != 0)

使用ifelse您可以将上述内容编写为:

df$finalgene <- ifelse(df$gene1 != 0 | df$gene2 != 0, 1, 0)

我们也可以使用来自base R rowSums rowSums

df$finalgene <- +(rowSums(df[c('gene1', 'gene2')] != 0) > 0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM