Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
table_type [2013/08/07 20:40] admin [Table Type] |
table_type [2020/02/10 21:24] admin [Table Type] |
||
---|---|---|---|
Line 2: | Line 2: | ||
A table is a collection of [[wp>Tuple|tuples]], where each tuple may be formed by several keys and values. The set of keys must be unique for each tuple. | A table is a collection of [[wp>Tuple|tuples]], where each tuple may be formed by several keys and values. The set of keys must be unique for each tuple. | ||
+ | |||
+ | [{{ :editors:table_basics_1.png?nolink |Table Basics}}] | ||
+ | |||
+ | [{{ :editors:table_basics_2.png?nolink |Table Basics}}] | ||
The set of all elements at the same position in all tuples defines a column. All columns must have a unique name. The names must follow the general name convention in Dinamica EGO, they must start with a "_" or a letter and must be formed by letters, numbers and underscores. Blanks in names are automatically replaced by "_" (underscore). | The set of all elements at the same position in all tuples defines a column. All columns must have a unique name. The names must follow the general name convention in Dinamica EGO, they must start with a "_" or a letter and must be formed by letters, numbers and underscores. Blanks in names are automatically replaced by "_" (underscore). | ||
Line 7: | Line 11: | ||
Keys and values can be represented using double precision [[wp>Floating_point|floating point numbers]], allowing the definition of integral and fractional values, or [[wp>String_(computer_science)|strings]]. | Keys and values can be represented using double precision [[wp>Floating_point|floating point numbers]], allowing the definition of integral and fractional values, or [[wp>String_(computer_science)|strings]]. | ||
- | ===== Automatic Conversions ===== | + | Internally, tables are represented using trees. |
- | * **Converted from**: [[Change Matrix Type]], [[Transition Matrix Type]], [[Transition Function Parameter Matrix Type]], [[Percent Matrix Type]], [[Categorization Type]] and [[Lookup Table Type]]. | + | [{{ :editors:table_internals.png?nolink |Table Internals}}] |
- | * **Converted to**: [[Change Matrix Type]], [[Transition Matrix Type]], [[Transition Function Parameter Matrix Type]], [[Percent Matrix Type]], [[Categorization Type]] and [[Lookup Table Type]]. | + | <note tip>The Dinamica documentation and error messages usually express a table format as a sequence of column names/types separated by commas. |
+ | |||
+ | For example, the sequence “City_Id*#real, City_Population#real, City_Name#string” corresponds to a table with one key column and two value/data column. The key column is named “City_Id” with type Real Value Type and the data/value columns are named “City_Population” and “City_Name” with types Real Value Type and String Type, respectively. | ||
+ | |||
+ | It is also possible to omit the column names and represent the previous table format as “*#real, #real, #string”. | ||
+ | When stored as [[wp>Comma-separated_values]] files, tables may also use the column name/type syntax to represent the column attributes — the name, the indication whether it is key or data/value column, and its data type.</note> | ||
===== GUI Editor ===== | ===== GUI Editor ===== | ||
Line 31: | Line 40: | ||
</code> | </code> | ||
- | The type of each columns is inferred inspecting the column elements. Elements representing strings must be surrounded by double quotes '"'. | + | The type of each columns is inferred inspecting the column elements. Elements representing strings can be surrounded by double quotes '"'. |
<code cpp> | <code cpp> | ||
Line 41: | Line 50: | ||
12, "sugar_cane", 75, 45, 123, | 12, "sugar_cane", 75, 45, 123, | ||
34, "bean", 20, 45, 57, | 34, "bean", 20, 45, 57, | ||
+ | ] | ||
+ | </code> | ||
+ | |||
+ | The table below represents the table above without the use of double quotes. | ||
+ | |||
+ | <code cpp> | ||
+ | [ | ||
+ | Categories*, Name, Color_Red, Color_Green, Color_Blue, | ||
+ | 1, soy, 20, 45, 125, | ||
+ | 2, rice, 20, 100, 125, | ||
+ | 7, coffee, 200, 45, 125, | ||
+ | 12, sugar_cane, 75, 45, 123, | ||
+ | 34, bean, 20, 45, 57, | ||
] | ] | ||
</code> | </code> | ||
Line 52: | Line 74: | ||
</code> | </code> | ||
+ | However, it is possible to omit the column type if the column type is "Real". So, it is legal to redefine the previous table as the following: | ||
+ | |||
+ | <code cpp> | ||
+ | [ | ||
+ | "From*", "To*", "Variable_Name*#string", "Upper_Range*", "Weight_Coefficient" | ||
+ | ] | ||
+ | </code> | ||
+ | |||
+ | ===== Automatic Conversions ===== | ||
+ | |||
+ | * **Converted from**: [[Change Matrix Type]], [[Transition Matrix Type]], [[Transition Function Parameter Matrix Type]], [[Percent Matrix Type]], [[Categorization Type]] and [[Lookup Table Type]]. | ||
+ | |||
+ | * **Converted to**: [[Change Matrix Type]], [[Transition Matrix Type]], [[Transition Function Parameter Matrix Type]], [[Percent Matrix Type]], [[Categorization Type]] and [[Lookup Table Type]]. |