Example for ROW to COLUMN transpose:
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(transpose_ds)
let sourceTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({
infoTableName: "InfoTable",
dataShapeName: "transpose_ds"
});
let newEntry = {
f1: '1',// STRING
f2: 'a',// STRING
f3: 'A'// STRING
};
sourceTable.AddRow(newEntry);
newEntry = {
f1: '2',// STRING
f2: 'b',// STRING
f3: 'B'// STRING
};
sourceTable.AddRow(newEntry);
newEntry = {
f1: '3',// STRING
f2: 'c',// STRING
f3: 'C'// STRING
};
sourceTable.AddRow(newEntry);
newEntry = {
f1: '4',// STRING
f2: 'd',// STRING
f3: 'D'// STRING
};
sourceTable.AddRow(newEntry);
let transposedTable = Resources["InfoTableFunctions"].CreateInfoTable();
var stRecordCount = sourceTable.length;
var transposedTableFields = [];
for(var f = 0; f < stRecordCount; f++){
var fieldName = 'trn_f' + (sourceTable.rows[f].f1);
let newField = {
name: fieldName,
baseType: 'STRING'
};
transposedTable.AddField(newField);
transposedTableFields.push(fieldName);
}
for(var i = 0; i < stRecordCount; i++){
var sourceRowData = sourceTable.rows[i];
/** convert as colum data **/
var row = 0;
for(var rowValue in sourceRowData) {
var transposed1stFieldName = transposedTableFields[i];
if(i == 0){
var dataEntry0 = {};
dataEntry0[transposed1stFieldName] = sourceRowData[rowValue];
transposedTable.AddRow(dataEntry0);
}else{
transposedTable.rows[row][transposed1stFieldName] = sourceRowData[rowValue];
row++;
}
}
}
result = sourceTable;
result = transposedTable;
Source Data:

Transposed Data:

Hope this helps.