数据文件,包括CSV文件、Excel文件、文本文件
MyBox粘贴板的数据
矩阵
数据库表
数据被表示为二维存储结构:
“列”定义数据的属性/字段, 横向延展数据的维度。
“行”保存数据的实例,纵向延展数据的集合。
数据应当等宽,即所有行的列数都相同。
在数据处理的“列”页签下,在表格中增/删/改数据的列:
列名不能为空也不能重复。
直接点击表格单元以编辑
也可以选择列并点击“编辑”按钮以弹出列的编辑窗。
可以重命名所有字段为序列号。
可以随机设置颜色。
可以调整列的顺序。
点击按钮“确定”以把列的修改应用于当前数据。
点击按钮“取消”以丢弃修改并从当前数据读取列的定义。
修改未保存时,若修改未应用于数据,则页签头显示**,否则页签头显示*。
列的类型包括:字串、双精度、浮点、长整型、整型、短整型、布尔型、日期时间、日期、纪元、经度、纬度、枚举型、色彩。
此属性用于数据的显示、编辑、计算、和保存。
通常应成对定义经度和纬度。
此属性主要用于显示,在编辑输入数值时不会自动应用格式、而是保持原始的输入。
在一些界面上,如“复制”或“导出”,可选“按照列的格式保存日期/时间/纪元和数字”。
对于数字类型,可选:以千分组、以万分组、科学计数法、无格式。
对于日期时间/日期类型,支持:MM/dd/yy、yy-MM-dd、毫秒、时区、T分隔、补全世纪。
对于纪元类型,支持:M/d/y、y-M-d、毫秒、时区、T分隔、补全世纪、中文前后缀(“公元”、“公元前”)、英文前后缀(“AD”、“BC”)。
对于枚举型,可定义数值列表。
数据列对于非法值的处理策略:略过、计为空值、计为零。
在一些上下文环境中,“计为空值”等同于“略过”。
此属性只用于显示或者计算,在编辑输入数值时不会自动处理非法值。
列的应用原则为:“最大包容、最少处理”。
加载数据时,不检查列类型,原样读取和导入。
按列类型解析数值
按列的定义来处理非法值
按列的格式来重写数值
被显示的数值,可能与当前实际数值并不相同。
例如,列的类型为双精度,读入数值“abc”:
若非法值计为零,则显示为零(实际值仍为“abc”)
若非法值略过或计为空,则显示为“abc”。
对于布尔类型,显示选择框。
对于枚举类型,显示下拉选择列表。
对于颜色类型,显示调色盘。
对于经度/纬度,可在地图上选择位置。
点击可编辑的数据单元,开始编辑。
开始编辑时,数值原样显示,忽略列类型和列格式。
在输入和修改数值过程中,按列类型检查输入框中的数值。
若数值非法,则编辑框显示为异常颜色。
若数值合法,则编辑框显示为正常颜色。
数值始终保持用户的输入。
按回车键以提交修改,按ESC键以取消修改。
选项:当焦点离开数据单元(点击其它控件)时,自动提交修改。
当修改被提交后,检查编辑框中的数值:
若数值未变化,则不检查类型也不提交保存。
若数值有变化,则按列类型检查修改后的数值:
对非法值,拒绝保存,恢复数值、原样显示。
对合法值,提交保存,然后按列类型和列格式显示保存后的数值。
例如,列的类型为双精度,非法值计为空,小数位数为2。读入数值“abc”:
数据单元显示为“abc”。
用户修改它的数值为“abc123”:
在用户输入过程中,输入框始终显示为异常颜色。
用户敲击回车或点击其它控件时,此数据单元恢复显示为“abc”并为正常颜色。
用户修改数值为“123.4567”:
在用户输入过程中,输入框始终显示为正常颜色。
用户敲击回车或点击其它控件时,此数据单元被保存为“123.4567”、并显示为“123.46”。
其它数据单元不受影响。即只要不修改数据单元,它们就一直保持原样。
检验的对象是当前页中的数据行。
开启方式:
点击按钮“检验当前页的数据”。
选项:在保存时自动检验数据值。
以下内容被检验:
若列被定义为非空,则此列的空值为非法。
若数值不符合列的类型,则为非法。
检验结果被显示为html表格。
CSV/文本/Excel文件的数值都按字符串写入。
数据库表的数值按“就近类型”写入:
MyBox的列类型 |
JDBC的数据类型 |
字串(String) |
VARCHAR |
双精度(Double) |
DOUBLE |
浮点(Float) |
FLOAT |
长整型(Long) |
BIGINT |
整型(Integer) |
INT |
短整型(Short) |
SMALLINT |
布尔型(Boolean) |
BOOLEAN |
日期时间(Datetime) |
TIMESTAMP |
日期(Date) |
DATE |
纪元(Era) |
BIGINT |
经度(Longitude) |
DOUBLE |
纬度(Latitude) |
DOUBLE |
枚举型(Enumeration) |
VARCHAR |
颜色(Color) |
VARCHAR |
注: derby不支持负数的时间类型,所以只能用长整型保存纪元。
矩阵的所有数值都按双精度写入。
忽略列类型和列格式,用数据原值来处理,
按计算的要求解析数值。例如计算需要双精度数字,则试图将数值转换为双精度。
若数值转换失败,则按列的定义处理非法值。
计算本身也可以定义对非法值的处理策略。计算的定义优先于列的定义。
列和计算都可以定义小数位数。计算的定义优先于列的定义。
例如,列类型为字串,对它进行描述性统计:
每个数值被试图转换为双精度
若非法值计为零,则非法值也被算在“个数”里,同时参与平均值和总和的计算。
若略过非法值,则非法值不参与任何计算。
若非法值计为空,则非法值导致所有计算的结果都非法(Double.NaN)。
所有涉及到排序的计算,数据都会转换为临时数据库表,然后利用数据库系统来排序。
排序结果与列的类型有关。例如,字串“123”小于字串“18”,而数字“123”大于数字“18”。
列的颜色主要用于数据图。
当数据图初始生成时,与列相关的图元素显示为列的颜色。其后用户可以设置为随机颜色。
表格是主编辑模式:
它的修改被自动应用其它面板。
它是用于保存的最终数据。
除了文本文件,对于字符串类型的数据,支持编辑和保存多行:
若值是单行的(不包含换行符):
点击数据单元时显示单行输入框。
在值中写入"\n" 作为换行符、然后提交修改(回车或点击其它地方)。
若值中包含换行符:
点击数据单元时显示多行输入框。
直接编辑多行文本。
CSV是辅编辑模式:
点击按钮“确定”以把它的修改应用于“表格”。
点击按钮“取消”以丢弃它的修改并从“表格”读取数据。
点击按钮“分隔符”以从“表格”读取数据并应用新的分隔符,当前修改被丢弃。
此分隔符不影响源文件。
若数值包含分隔符或换行符,则数值应被引号包围起来。
修改未保存时,页签头显示* 。
点击按钮“保存”以把修改写入文件和数据库:
“表格”中行的变化,包括修改/添加/删除/排序,影响当前页的行。
“列”页签中的变化,包括修改/添加/删除/排序,影响所有行。
“属性/列的修改被保存到数据库中。
点击按钮“恢复”以丢弃所有修改并从文件和数据库中加载数据。
在内部数据表中记录数据对象的定义:
csv/excel/文本 |
MyBox粘贴板 |
矩阵 |
数据库表 |
|
何时增加数据的定义 |
当数据文件第一次被打开时 |
当数据复制到MyBox粘贴板中 |
在矩阵管理器中保存新矩阵时 |
在数据库表管理器中保存新数据库表时 |
数据的存储位置 |
数据文件 |
MyBox内部目录下的文件 |
MyBox数据库表 |
MyBox数据库表 |
当删除数据的定义 |
数据文件不受影响 |
删除内部文件 |
删除矩阵的数据 |
删除数据库表 |
更详细的说明见《用户手册-数据工具》