INNER CODE UNIT · C
j_nn
mlr-org/mlr · src/smote.c:22
j_nn = nn[j_sel + j_nn * nrow_nn] - 1;
lambda = unif_rand();
for (R_len_t col = 0; col < ncol_x; col++) {
if (isnum[col]) {
/* do convex combination for numerics */
res[i + col * nrow_res] = lambda * x[j_sel + col * nrow_x] + (1 - lambda) * x[j_nn + col * nrow_x];
} else {
/* for factors we sample a level from x1 or x2 */
if (lambda < 0.5)
lev = x[j_sel + col * nrow_x];
else
lev = x[j_nn + col * nrow_x];
res[i + col * nrow_res] = lev;
}
}
}
PutRNGstate();
return s_res;