Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
table_type [2013/08/07 20:40]
admin [Table Type]
table_type [2020/02/10 21:38] (current)
admin [Table Type]
Line 1: Line 1:
 ====== Table Type ====== ====== Table Type ======
  
-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]] ​organized in a special way, where each tuple may be formed by several keys and values. The set of keys in each row must be unique.
  
-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).+[{{ :​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 rows 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).
  
 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*#realCity_Population#​realCity_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 that 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 38:
 </​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 48:
   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 72:
 </​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]].