[英]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
如果gene1
或gene2
不等于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.