使用R一次重新编码多个变量

时间:2016-05-06 02:20:18

标签: r

我的数据集如下:

Q_B      Q1      Q2      Q3       Q4
1         5       4       5       3
2  
1         3       4       3       1
2                                  
1         1       1       1       1

如果Q_B == 2,我正在做的是将Q1更改为Q4, 我使用Q1[Q_B==2]<-0,Q2[Q_B==2]<0

我必须为Q1到Q4编写相同的代码,有没有简单的方法呢?谢谢!

1 个答案:

答案 0 :(得分:0)

我们可以做到

df1[df1$Q_B==2,-1] <- 0

数据

df1 <- structure(list(Q_B = c(1L, 2L, 1L, 2L, 1L), Q1 = c(5L, NA, 3L, 
NA, 1L), Q2 = c(4L, NA, 4L, NA, 1L), Q3 = c(5L, NA, 3L, NA, 1L
), Q4 = c(3L, NA, 1L, NA, 1L)), .Names = c("Q_B", "Q1", "Q2", 
"Q3", "Q4"), class = "data.frame", row.names = c(NA, -5L))