重塑数据框的正式 UML 表示
Formal UML representation of reshaping a data frame
用于数据重组的文档 table 从 "wide" 使用每个分数的 标准 列到使用 score
列和 criterion
专栏我的第一反应是使用 UML class 图。
我知道通过更改数据结构 table,class 属性没有改变。
我的第一个问题是宽版还是长版更正确地表示数据table?
我的第二个问题 是将两种表示联系起来是否有意义——如果是的话,是哪种关系?
我的第三个问题是除了 UML class 图之外的其他东西是否更适合 table 用于记录重塑(显示之前的数据预处理)在 R 中作为盒罐分发)。
您从 table 快速跳到了 UML。这使您的问题非常混乱,因为 table 的宽度表示为 class,反之亦然。
重新表述您的问题,看来您正在重构一些 table。宽 table 显示同一行中同一学生的多个值。这意味着最大练习数由table结构固定:
ID Ex1 Ex2 Ex3 .... Ex N
-----------------------------
111 A A A ... A
119 A C - ... D
127 B F B ... F
长table的列数较少,每行只显示1个特定学生的1个特定分数:
ID # Score
---------------
111 1 A
111 2 A
111 3 A
...
111 N A
119 1 A
119 2 C
...
您可以在 UML class 图中对此结构建模。但是在 UML 中,table 布局并不重要:这是 ORM 映射的问题,您可以完美地拥有一个 class 模型(具有多重性的属性或关联 1..N
) 可以使用宽版本或长版本来实现。如果多重性为 1..*
,则只有长选项有效。
现在回答您的问题:
- 两种表述都正确;他们只是有不同的特点。 wide 是不灵活的,因为最大分数数由 table 结构固定。另外添加一个新的分数实际上需要更新一条记录(所以两个模型可能的并发是不一样的)。如果您想连续显示学生分数的历史记录,则使用 long 有点复杂。
- 是的,将两者联系起来很有意义,尤其是当您正在写作将第一个转换为第二个时。
- UML 不一定会在这里增加价值。如果您真的关心 table 和价值观,您也可以使用 Entity/Relationship 图表。但是 UML 具有 allowing database modelling as well and it lets you add behavioral aspects. If not now, then later. You could consider using the non-standard
«table»
stereotype 的优势,可以阐明您正在建模的内容 table(因此是您设计的低级视图)。
用于数据重组的文档 table 从 "wide" 使用每个分数的 标准 列到使用 score
列和 criterion
专栏我的第一反应是使用 UML class 图。
我知道通过更改数据结构 table,class 属性没有改变。
我的第一个问题是宽版还是长版更正确地表示数据table?
我的第二个问题 是将两种表示联系起来是否有意义——如果是的话,是哪种关系?
我的第三个问题是除了 UML class 图之外的其他东西是否更适合 table 用于记录重塑(显示之前的数据预处理)在 R 中作为盒罐分发)。
您从 table 快速跳到了 UML。这使您的问题非常混乱,因为 table 的宽度表示为 class,反之亦然。
重新表述您的问题,看来您正在重构一些 table。宽 table 显示同一行中同一学生的多个值。这意味着最大练习数由table结构固定:
ID Ex1 Ex2 Ex3 .... Ex N
-----------------------------
111 A A A ... A
119 A C - ... D
127 B F B ... F
长table的列数较少,每行只显示1个特定学生的1个特定分数:
ID # Score
---------------
111 1 A
111 2 A
111 3 A
...
111 N A
119 1 A
119 2 C
...
您可以在 UML class 图中对此结构建模。但是在 UML 中,table 布局并不重要:这是 ORM 映射的问题,您可以完美地拥有一个 class 模型(具有多重性的属性或关联 1..N
) 可以使用宽版本或长版本来实现。如果多重性为 1..*
,则只有长选项有效。
现在回答您的问题:
- 两种表述都正确;他们只是有不同的特点。 wide 是不灵活的,因为最大分数数由 table 结构固定。另外添加一个新的分数实际上需要更新一条记录(所以两个模型可能的并发是不一样的)。如果您想连续显示学生分数的历史记录,则使用 long 有点复杂。
- 是的,将两者联系起来很有意义,尤其是当您正在写作将第一个转换为第二个时。
- UML 不一定会在这里增加价值。如果您真的关心 table 和价值观,您也可以使用 Entity/Relationship 图表。但是 UML 具有 allowing database modelling as well and it lets you add behavioral aspects. If not now, then later. You could consider using the non-standard
«table»
stereotype 的优势,可以阐明您正在建模的内容 table(因此是您设计的低级视图)。