[英]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.