Wide and narrow (sometimes un-stacked and stacked, or wide and tall) are terms used to describe two different presentations for tabular data.[1] [2]
Wide, or unstacked data is presented with each different data variable in a separate column.
Person | Age | Weight | Height | |
---|---|---|---|---|
Bob | 32 | 168 | 180 | |
Alice | 24 | 150 | 175 | |
Steve | 64 | 144 | 165 |
See also: Entity–attribute–value model. Narrow, stacked, or long data is presented with one column containing all the values and another column listing the context of the value
Person | Variable | Value | |
---|---|---|---|
Bob | Age | 32 | |
Bob | Weight | 168 | |
Bob | Height | 180 | |
Alice | Age | 24 | |
Alice | Weight | 150 | |
Alice | Height | 175 | |
Steve | Age | 64 | |
Steve | Weight | 144 | |
Steve | Height | 165 |
This is often easier to implement; addition of a new field does not require any changes to the structure of the table, however it can be harder for people to understand.
Many statistical and data processing systems have functions to convert between these two presentations, for instance the R programming language has several packages such as the tidyr package. The pandas package in Python implements this operation as "melt" function which converts a wide table to a narrow one. The process of converting a narrow table to wide table is generally referred to as "pivoting" in the context of data transformations. The "pandas" python package provides a "pivot" method which provides for a narrow to wide transformation.