当另一列等于0时,将特定的列更改为NA

时间:2019-01-17 03:12:35

标签: r

我是r的新手,我一直在努力做到以下几点。如果一个值(在下面的示例中为“ y”)等于0,我想将某些值(“ x1”和“ x2”)更改为NA,而其他值保持不变(“ x3”)。示例:

df <- data.frame(y=c(1,0,1,1,0,0,1,0,1,0), x1=c(NA,3,4,7,NA,8,2,NA,3,7), x2=c(1,NA,4,7,5,6,NA,2,3,1), x3=c(9,5,2,4,7,2,5,8,2,2))  

我希望输出为:

   y x1 x2 x3
1  1 NA  1  9
2  0 NA NA  5
3  1  4  4  2
4  1  7  7  4
5  0 NA NA  7
6  0 NA NA  2
7  1  2 NA  5
8  0 NA NA  8
9  1  3  3  2
10 0 NA NA  2

2 个答案:

答案 0 :(得分:2)

我们可以使用$(function () { ... });中的$(document).ready(function() { ... });

mutate_at

答案 1 :(得分:1)

要在第二列和第三列中进行替换,可以使用

df[df$y == 0, 2:3] <- NA

或者,按名称指定列

df[df$y == 0, c("x1", "x2")] <- NA

或者,我们可以使用library(data.table)

setDT(df)[y==0, c('x1','x2') := NA]