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)
Quite common in R and other languages, you select rows from you dataframe based on an array of true/false values.
Hope its clear.
Kind regards, Steve.
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 Desiredlistsince 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
3 Replies
- Zubair_MuhammadCommunity 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- stevedepMemorable Member
Thanks, I found a way to do it, turns out, it's the same approach as you suggest. So it probably makes sense 😃
- CNENFRNLCommunity 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