将(+)1加到资料框中的0行

时间:2019-11-06 13:58:14

标签: r dataframe

我有一个像这样的 dataframe

df1 <- read.table(text = "    REF_CNT.x ALT_CNT.x REF_CNT.y ALT_CNT.y
1         397         0       574         2
2         417         2       219         0
3         537         2        31         0
4         117         5       154         0
5          76         2        52         0
6         238         0       102         2
7         265         0       108         2
8         177         6       156         6
9         407         0       359         4
10        770         3        64         0", header = TRUE)

如果行中有0,如何在每行中加1?

1 个答案:

答案 0 :(得分:1)

如果要将1加到包含0的整个行中,则以下内容可能会有所帮助:

df[apply(df,1,function(v) prod(v) ==0),] <- df[apply(df,1,function(v) prod(v) ==0),]+1

一种更有效的方法是使用rowSum,即:

df[rowSums(df==0)>0,] <- df[rowSums(df==0)>0,]+1