SEE_ALSO

## NAME

ttranspose -- Transpose or flip a table.

## USAGE

`ttranspose intable outtable action`

## DESCRIPTION

This task can be used to transpose a table so that input rows become output columns and input columns become output rows. Another option is to flip the table horizontally, that is, the first input column is the last output column. Finally, the table can be flipped vertically, i.e., the first input row is the last output row. Any combination of these operations may be performed.

If the table is actually transposed (rather than just flipped horizontally and/or vertically), the data types of all input columns must be the same. In addition, if the columns contain arrays rather than scalars, all the array lengths must be the same. The data type and array size will be preserved in the output table, but the column names of the output table will be "c1", "c2", "c3", etc, with default print format and null units. Actually, some mixing of data types is permitted. If some columns are type real and others are double precision, the output data type will be double precision. Similarly, short integers will be promoted to integers. Boolean columns can be mixed with any other data type; for numeric columns, yes becomes 1 and no becomes 0. When the columns in the input table are character strings, different maximum string lengths are permitted, and the output length will be the maximum of the input lengths. The restrictions on data type are not imposed on text tables, which can contain mixed integer, double precision and text columns.

If the table is only flipped but not transposed, the above restrictions on data type do not apply, and the column names, units and print formats will be preserved. Note that an operation such as "tht" (which happens to be equivalent to "v") does not actually transpose the table, so the data types of the columns need not all be the same.

The `tstat` task gives statistics for the values in a column,
so one application of `ttranspose` is to get statistics on
the values in a row by first transposing the table and then running `tstat`.

Text tables with too many rows cannot be transposed due to the limit of 1024 on the length of each row of a text table.

## PARAMETERS

- intable [file name template]
- The list of input table names.

- outtable [file name template]
- The list of output table names. There must be the same number of input and output names. If the output is to be written to the standard output, however, you can use outtable = "STDOUT" even if there several input tables.

- action = "t" [string]
- This is a string made up of the letters "t", "h", and "v"
which specify the operations to perform on the tables.
"t" means transpose (input rows become output columns),
"h" means flip horizontally (reverse the order of the columns),
and "v" means flip vertically (reverse the order of the rows).
The operations are performed in the order given from left to right.
Any combination of "t", "h", and "v" may be used,
in any order, and the letters may be repeated.
Operations such as "tt", "hh" or "vv" are valid, and they result in a simple copy of input to output.

The symbols "/", "-" and "|" are equivalent to the letters "t", "h" and "v" respectively.

- verbose = yes [boolean]
- Print the names of the tables as they are processed?

## EXAMPLES

1. The input is the text file "in", and the output is to be displayed on the screen. Each of the three operations ("t", "h", "v") and some combinations are illustrated.

tt> type in one two three four five six seven eight nine ten eleven twelve tt> ttranspose in STDOUT t in --> STDOUT one four seven ten two five eight eleven three six nine twelve tt> ttranspose in STDOUT h in --> STDOUT three two one six five four nine eight seven twelve eleven ten tt> ttranspose in STDOUT v in --> STDOUT ten eleven twelve seven eight nine four five six one two three tt> ttranspose in STDOUT hv in --> STDOUT twelve eleven ten nine eight seven six five four three two one tt> ttranspose in STDOUT th in --> STDOUT ten seven four one eleven eight five two twelve nine six three

## BUGS

## REFERENCES

This task was written by Phil Hodge.

## SEE ALSO

Type "help ttools opt=sys" for a description of the `tables` package.