私が持っているデータ:TXR:連結テーブルをピボットする方法このようになります
i,key,val
1,a,0.2
1,b,3.2
1,c,4.5
2,a,0.8
2,b,4.1
2,c,3.5
3,a,0.5
3,b,3.1
3,c,4.1
4,a,3.2
4,b,5.2
4,c,7.1
4,d,1.1
5,a,2.8
5,b,5.1
5,c,8.5
5,d,0.9
6,a,2.5
6,b,5.1
6,c,8.1
6,d,1.0
7,a,3.2
7,b,5.2
8,a,2.8
8,b,5.1
9,a,2.5
9,b,5.1
私の現在の間違ったTXRスクリプトは次のとおりです:
@(output)
i,key,val
@(end)
@(repeat)
i,@(coll)@{key /[^,]+/}@(end)
@ (collect :gap 0)
@{i /[0-9]+/},@(coll)@{value /[^,]+/}@(end)
@ (end)
@ (output)
@ (repeat)
@ (repeat)
@i,@key,@value
@ (end)
@ (end)
@ (end)
@(end)
私はこのように見えるようにTXRでそれを処理したい
i,a,b,c
1,0.2,3.2,4.5
2,0.8,4.1,3.5
3,0.5,3.1,4.1
i,a,b,c,d
4,3.2,5.2,7.5,1.1
5,2.8,5.1,8.5,0.9
6,2.5,5.1,8.1,1.0
i,a,d
7,3.2,5.2
8,2.8,5.1
9,2.5,5.1
代わりに、次のものが生成されます。
i,key,val
1,a,0.2
1,a,3.2
1,a,4.5
2,b,0.8
2,b,4.1
2,b,3.5
3,c,0.5
3,c,3.1
3,c,4.1
4,a,3.2
4,a,5.2
4,a,7.5
4,a,1.1
5,b,2.8
5,b,5.1
5,b,8.5
5,b,0.9
6,c,2.5
6,c,5.1
6,c,8.1
6,c,1.0
7,a,3.2
7,a,5.2
8,d,2.8
8,d,5.1
9,,2.5
9,,5.1
希望の出力を得るにはどうすればよいですか?何とか@(merge)
を使うことができますか?それとも、lispに落とす必要がありますか?私は、これに便利なtranspose
関数があることを知りました。
ありがとう、もう一度!簡単にTXRがこの問題をどのように処理したかに非常に感銘を受けました。 – wdkrnls