У меня есть кадр данных, похожий на этот:
> var1<-c("01","01","01","02","02","02","03","03","03","04","04","04")
> var2<-c("0","4","6","8","3","2","5","5","7","7","8","9")
> var3<-c("07","41","60","81","38","22","51","53","71","72","84","97")
> var4<-c("107","241","360","181","238","222","351","453","171","372","684","197")
> df<-data.frame(var1,var2,var3,var4)
> df
var1 var2 var3 var4
1 01 0 07 107
2 01 4 41 241
3 01 6 60 360
4 02 8 81 181
5 02 3 38 238
6 02 2 22 222
7 03 5 51 351
8 03 5 53 453
9 03 7 71 171
10 04 7 72 372
11 04 8 84 684
12 04 9 97 197
Я хочу заменить все значения переменных var2,var3,var4
на "0"
, которые существуют, где var1 равно 02
и / или 03
. Число di git также должно быть таким же, чтобы df
выглядело так:
var1 var2 var3 var4
1 01 0 07 107
2 01 4 41 241
3 01 6 60 360
4 02 0 00 000
5 02 0 00 000
6 02 0 00 000
7 03 0 00 000
8 03 0 00 000
9 03 0 00 000
10 04 7 72 372
11 04 8 84 684
12 04 9 97 197
Теперь я также должен быть уверен, что команда будет выполнена, даже если var1
будет не содержит 02
или 03
. По существу, что-то вроде того, если var1
содержит 01
или 02
, установите соответствующие значения в var2
, var3
и var4
в 0
в соответствии с количеством цифр в var2
, var3
и var4
(например, 97
будет 00
и 197
будет 000
), а если нет, ничего не делать.
Есть предложения?