Lets say that I've the next data.table in R:
test
a b node_feature_name node_split index node_child_left
1: 0 9 b 7.5 99 11
2: 1 8 a 1.5 99 12
3: 2 7 b 7.5 99 13
4: 4 6 a 1.5 99 14
And what i would like to have is, a update of the column index,
by the value of node_child_left IF the value assigned by node_feature_name is smaller or equal <= node_split
(dynamic)
Thus i would like to have something as:
1: b -> 9 <= 7.5 == False
2: a -> 1 <= 1.5 == True
3: b -> 7 <= 7.5 == True
4: a -> 4 <= 1.5 == False
But
dt[,index := ifelse( get(node_feature_name) <= node_split, node_child_left, index, by = node_split]
is to slow :'( Also, when i leave out, the by statement -->
test[,index := ifelse( get(node_feature_name) <= node_split, node_child_left, index)]
then i don't have the desired result, because: get(node_feature_name) will represent the column of the first value of node_feature_name (thus column b)
desired result:
a b node_feature_name node_split index node_child_left
1: 0 9 b 7.5 99 11
2: 1 8 a 1.5 12 12
3: 2 7 b 7.5 13 13
4: 4 6 a 1.5 99 14