Forum Discussion
stevedep
5 years agoMemorable Member
select values from list based on bolean array / list
Hi,
I am trying to select values from a list where my bolean (true/false) list would indicate to select the column.
Something like.
List.Select(datalist, listwithtruefalsevalues) ...
- 5 years ago
See if this help
let DataList= {1,2,3,4,5}, Listwithtruefalse = {true,false,true,true,false}, Mergedlist=List.Zip({DataList,Listwithtruefalse }), Desiredlist = List.Transform( List.Select(Mergedlist, (d)=>d{1}=true),(d)=>d{0}) in Desiredlist - 5 years ago
since you have 2 lists of the same lengths, why not use subscript to pick up responding values like this,
let DataList= {1,2,3,4,5}, Listwithtruefalse = {true,false,true,true,false}, Desiredlist = List.Accumulate({0..List.Count(Listwithtruefalse)-1}, {}, (s,c)=>if Listwithtruefalse{c} then s&{DataList{c}} else s) in Desiredlist
Zubair_Muhammad
5 years agoCommunity Champion
See if this help
let
DataList= {1,2,3,4,5},
Listwithtruefalse = {true,false,true,true,false},
Mergedlist=List.Zip({DataList,Listwithtruefalse }),
Desiredlist = List.Transform(
List.Select(Mergedlist, (d)=>d{1}=true),(d)=>d{0})
in
Desiredlist- stevedep5 years agoMemorable Member
Thanks, I found a way to do it, turns out, it's the same approach as you suggest. So it probably makes sense 😃
- CNENFRNL5 years agoCommunity Champion
since you have 2 lists of the same lengths, why not use subscript to pick up responding values like this,
let DataList= {1,2,3,4,5}, Listwithtruefalse = {true,false,true,true,false}, Desiredlist = List.Accumulate({0..List.Count(Listwithtruefalse)-1}, {}, (s,c)=>if Listwithtruefalse{c} then s&{DataList{c}} else s) in Desiredlist