长格式数据框列层次结构

问题描述 投票:0回答:1

我正在使用长格式数据帧,并打算自己编写一个包。虽然这并不重要,但我想遵守列层次结构的常见做法,例如当我有 3 个参与者并且每个参与者有两个会话时,表示会话的列将被视为在层次结构中具有更高的位置。

该值位于最右侧似乎是标准的。但是,对于标识符列,不清楚位置最高的列是否应该位于最左边或几乎最右边,即我可以将其设为会话、参与者、值或参与者、会话、值。对我来说,直觉是前者,ChatGPT 也告诉我这一点,但在将多维数组转换为数据帧时,reshape2::melt() 使用后一个顺序,因为它将最高维度放在右侧而不是左侧。

data.frame(会话=代表(1:2,每个= 3),参与者= 1:3,值=样本(6)/ 100) data.frame(参与者= 1:3,会话=代表(1:2,每个= 3),值=样本(6)/ 100)

r dataframe reshape2 conventions long-format-data
1个回答
0
投票

根据我对问题的理解,我没有看到任何明确的经验法则,也没有看到我们在进行数据流时如何组织临时表的标准。

纵观各种风格指南,没有任何关于在转型阶段如何组织临时栏的参考。

我看到的唯一一致性是一般来说数字列在右侧,因子/字符/数据列在左侧。 通常,日期列位于数字列的最后

当您有字符/因子列时,它实际上是由域/上下文驱动的,以决定哪个层次结构的排列更“逻辑”。

如果您要对数据进行分组,然后添加列或汇总,将分组列放在外部可以帮助用户可视化分组操作。

pivot_longer()
pivot_wider()
类型操作而言,它将取决于您要定位的列,但最左侧的 id 列可以帮助用户可视化旋转操作,而
names_from
列尽可能接近
values_from
列在pivot_wider 场景中也有帮助。

希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.