この形式のデータがあります;-
Type,Fac1,Fac2,Fac3
1,0.1,0.1,0.1
2,0.2,0.2,0.2
3,0.3,0.3,0.3
AWKを使用してデータを次のように変換する必要があります。
Type
1,Fac1,0.1
1,Fac2,0.1
1,Fac3,0.1
2,Fac1,0.2
2,Fac2,0.2
2,Fac3,0.2
3,Fac1,0.3
3,Fac2,0.3
3,Fac3,0.3
つまり、水平方向から垂直方向に変化する「ピボット」動作です。
だから私はこれを試しました:
awk -F ',' '{for (i=2;i<=NF;i++) { if (i==2) {print $1"," $i } else print $1"," $i}}'
ベストアンサー1
$ cat tst.awk
BEGIN { FS=OFS="," }
NR==1 {
print $1
split($0,tags)
next
}
{
for (i=2; i<=NF; i++) {
print $1, tags[i], $i
}
}
$ awk -f tst.awk file
Type
1,Fac1,0.1
1,Fac2,0.1
1,Fac3,0.1
2,Fac1,0.2
2,Fac2,0.2
2,Fac3,0.2
3,Fac1,0.3
3,Fac2,0.3
3,Fac3,0.3