Home > Mobile >  Re-assign an element in a nested list KDB /Q
Re-assign an element in a nested list KDB /Q

Time:06-30

I have a nested list like the following:

L:((2020.07.01 2020.09.30);
(2020.10.01 2020.12.31);
(2021.01.01 2021.03.31);
(2021.04.01 2021.06.30);
(2021.07.01 2021.09.30);
(2021.10.01 2021.12.31);
(2022.01.01 2022.03.31);
(2022.04.01 2022.06.30))

and I want to simply reassign the last unit (L[7][1]), to a new date. I tried

L[7][1]:2022.05.31

but got an 'assign error. How do I reassign an element in a nested list?

CodePudding user response:

You're looking for dot amend

q)l:8 2#16?.z.d
q)l
2007.12.08 2017.05.31
2021.08.03 2012.04.30
2011.07.06 2017.01.01
2013.01.08 2010.12.12
2013.06.26 2004.09.30
2004.03.10 2021.10.29
2010.06.01 2008.05.01
2021.12.15 2019.11.19
q).[l;7 1;:;2022.05.31]
2007.12.08 2017.05.31
2021.08.03 2012.04.30
2011.07.06 2017.01.01
2013.01.08 2010.12.12
2013.06.26 2004.09.30
2004.03.10 2021.10.29
2010.06.01 2008.05.01
2021.12.15 2022.05.31

CodePudding user response:

Index at depth https://code.kx.com/q4m3/3_Lists/#382-indexing-at-depth

q)L[7;1]:2022.05.31
q)L
2020.07.01 2020.09.30
2020.10.01 2020.12.31
2021.01.01 2021.03.31
2021.04.01 2021.06.30
2021.07.01 2021.09.30
2021.10.01 2021.12.31
2022.01.01 2022.03.31
2022.04.01 2022.05.31
  • Related