簡體   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