Hi,
'key' isn't a column, it's actually a keyword function that returns the keys of a dictionary(startcpu) as a list
The # is the 'take' function in this instance, meaning it will return a set number of elements from a list
Applying the each-both iterator ' will apply the take to each element in the list of keys
So, for "raze fc#'key startcpu", going from right to left key startcpu will get a list of key values from startcpu, then fc#' will apply fc# to each value in the key list, creating a matrix.
Finally, raze will collapse that matrix into one long list.
Step-by-step:
q)freq:0D00:01
q)timerange:5D
q)fc:`long$timerange%freq
q)n:1000
q)startcpu:(til n)!25+n?20
q)startcpu
0| 37
1| 33
2| 35
3| 26
4| 34
5| 36
6| 30
..
q)key startcpu
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..
q)fc
7200
q)fc#'key startcpu
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0..
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1..
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2..
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3..
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4..
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5..
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6..
..
q)raze fc#'key startcpu
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0..
Hope this helps!
Best,
Joseph King