You can do the following:
- For each row identify which one is filled;
- Associate to the column
N_VOLTAS
the value of these columns.
I’d do it this way:
df <- data.frame(var1 = c(rep(NA, 5), 1, 1, 1, rep(NA, 4), 1),
var2 = c(rep(NA, 3), 19, 13, rep(NA, 8)),
var3 = c(rep(NA, 8), 10, 8, 7, 5, NA),
n_voltas = c(32, 47, 12, rep(NA, 10)))
>df
var1 var2 var3 n_voltas
1 NA NA NA 32
2 NA NA NA 47
3 NA NA NA 12
4 NA 19 NA NA
5 NA 13 NA NA
6 1 NA NA NA
7 1 NA NA NA
8 1 NA NA NA
9 NA NA 10 NA
10 NA NA 8 NA
11 NA NA 7 NA
12 NA NA 5 NA
13 1 NA NA NA
for (i in 1:nrow(df)) {
#identificando qual coluna está preenchida
var1 = is.na(df[i,1])
var2 = is.na(df[i,2])
var3 = is.na(df[i,3])
if (var1 == FALSE){
df[i, 4] = df[i, 1]
}else if (var2 == FALSE){
df[i, 4] = df[i, 2]
} else if (var3 == FALSE) {
df[i, 4] = df[i, 3]
}else {
#valor para quando todas estiverem vazias
}
}
var1 var2 var3 n_voltas
1 NA NA NA 32
2 NA NA NA 47
3 NA NA NA 12
4 NA 19 NA 19
5 NA 13 NA 13
6 1 NA NA 1
7 1 NA NA 1
8 1 NA NA 1
9 NA NA 10 10
10 NA NA 8 8
11 NA NA 7 7
12 NA NA 5 5
13 1 NA NA 1
This way considers that only one of the columns will be filled and that if you have more than one, the first one will be used in the column n_voltas
.
Perfect! Thanks to the help of all of you I got here! Thank you very much.
– white_knight