つくりました。
SPL
| makeresults count=20
| streamstats count
| eval iterate="abcdefghijklmnopqrstuvwxyz"
| eval tmp="column"
| foreach tmp
[eval <<FIELD>> = <<FIELD>> + "_" +substr(iterate,count,1)]
| xyseries count tmp _time
| sort count
| foreach column*
[eval <<FIELD>> = random() % 1000 + 1]
解説
- とりあえず20*20の行列を作ろうということで、
makeresults
のcount
で20を指定 -
streamstats
で行番号を作成 - 最初は数字でやっていたが、最後のフィールドの整列が数字だと、column1,column10,column11,...と格好が悪くなったため、アルファベットの準備(最後
fields
できちんと書けばいいのだけどめんどくさくなりました。) - 列名の準備。今回はcolumn
-
foreach
をtmpで回して、substr
で列名に、アルファベットを順番にくっつける。mvindex
だと0から始まるが、substr
は1からなのね。 -
xyseries
で縦横変換 -
sort
で整列 -
foreach
をcolumn_*の列でまわして、各列に適当な数をいれる。 - 完成
順番に数をいれた列を作ってみる
SPL
| makeresults count=10
| streamstats count
| eval iterate="abcdefghijklmnopqrstuvwxyz"
| eval tmp="column"
| foreach tmp
[eval <<FIELD>> = <<FIELD>> + "_" +substr(iterate,count,1)]
| xyseries count tmp _time
| sort count
| rename COMMENT as "行を減らしたいときはここで | head 必要な行数"
| eventstats max(count) as _linecount
| foreach column_*
[eval <<FIELD>>=mvfind(split("abcdefghijklmnopqrstuvwxyz",""),"<<MATCHSTR>>") ]
| foreach column_*
[eval <<FIELD>>=count + ( _linecount * '<<FIELD>>')]
| rename count as No
| rename column_* as *
No | a | b | c | d | e | f | g | h | i | j |
---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 11 | 21 | 31 | 41 | 51 | 61 | 71 | 81 | 91 |
2 | 2 | 12 | 22 | 32 | 42 | 52 | 62 | 72 | 82 | 92 |
3 | 3 | 13 | 23 | 33 | 43 | 53 | 63 | 73 | 83 | 93 |
4 | 4 | 14 | 24 | 34 | 44 | 54 | 64 | 74 | 84 | 94 |
5 | 5 | 15 | 25 | 35 | 45 | 55 | 65 | 75 | 85 | 95 |
6 | 6 | 16 | 26 | 36 | 46 | 56 | 66 | 76 | 86 | 96 |
7 | 7 | 17 | 27 | 37 | 47 | 57 | 67 | 77 | 87 | 97 |
8 | 8 | 18 | 28 | 38 | 48 | 58 | 68 | 78 | 88 | 98 |
9 | 9 | 19 | 29 | 39 | 49 | 59 | 69 | 79 | 89 | 99 |
10 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
縦に順番に入れてみた。
コメントに書いた通り、行を減らしたいときはhead
、列を減らしたいときは最後にtable
で残したい列名を書く。
foreach
が一つに出来なかったのはなんでだろう
mvfind
の結果は数字(Number)のはずなんだけど、foreach
の中だと微妙な扱い。tonumber
も使えなかったし。
まとめ
今回は適当な列名ということで作ったが、
SPL
| eval field_name="A,B,C,D,E"
| makemv field_name delim=","
| mvexpand field_name
というようにきちんと書いて作るのもありだと思う。
ダミーデータばかりなり