以下对象可以以一致的方式来编辑和计算:
数据被表示为二维存储结构:
可以用以下方式之一来创建新数据:
新数据是临时数据,保存时需要输入必要的参数,如文件名或表名。
可以用以下方式之一来打开已存在的数据:
除了文本文件,对于字符串类型的数据,支持编辑和保存多行:
在模式“表格-编辑”或模式“CSV-编辑”下, 点击按钮或菜单“定义数据”。
在“列”页签下,在表格中增/删/改数据的列:
列名不能为空也不能重复。
直接点击表格单元以编辑
也可以选择列并点击“编辑”按钮以弹出列的编辑窗。
可以重命名所有字段为序列号。
可以随机设置颜色。
可以调整列的顺序。
点击按钮“确定”以把列的修改应用于当前数据。
点击按钮“恢复”以丢弃修改并从当前数据读取列的定义。
列的类型包括:字串、双精度、浮点、长整型、整型、短整型、布尔型、日期时间、日期、纪元、经度、纬度、枚举型、可编辑枚举型、色彩。
此属性用于数据的显示、编辑、计算、和保存。
通常应成对定义经度和纬度。
此属性主要用于显示,在编辑输入数值时不会自动应用格式、而是保持原始的输入。
在一些界面上,如“复制”或“导出”,可选“按照列的格式保存日期/时间/纪元和数字”。
对于数字类型,可选:以千分组、以万分组、科学计数法、无格式。
对于日期时间/日期类型,支持: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”。
其它数据单元不受影响。即只要不修改数据单元,它们就一直保持原样。
选项:编辑时检验数据。即,不选此项时,编辑时不检查数据。
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”。
在内部数据表中记录数据对象的定义:
|
csv/excel/文本 |
MyBox粘贴板 |
矩阵 |
数据库表 |
何时增加数据的定义 |
当数据文件第一次被打开时 |
当数据复制到MyBox粘贴板中 |
在矩阵管理器中保存新矩阵时 |
在数据库表管理器中保存新数据库表时 |
数据的存储位置 |
数据文件 |
MyBox内部目录下的文件 |
MyBox数据库表 |
MyBox数据库表 |
当删除数据的定义 |
数据文件不受影响 |
删除内部文件 |
删除矩阵的数据 |
删除数据库表 |
数据文件是外部数据,即:MyBox记录数据文件的定义、同时保持它的独立性。
在MyBox读写数据文件之后,数据文件应当仍然可以被其它方式正常读写。
在CSV文件中:
MyBox处理CSV文件时:
在Excel文件中:
MyBox处理Excel文件时:
注意:工具只能处理Excel文件的基本数据。如果文件包含格式、风格、公式、或图,建议把修改保存为新文件以免数据丢失。
在文本文件中:
MyBox处理文本文件时:
以下情形会生成临时数据文件:
临时数据文件为CSV格式,缺省的存放位置为MyBox内部的临时文件目录。
对于MyBox临时文件目录下的文件:
选项:将临时数据文件写在"generated"目录下。
选择此项后,临时数据文件就不会被当作“临时文件”了。
更详细的说明见《用户手册-数据工具》