Hadley Wickham 去年在JSS中撰写了一篇名为“ Tidy Data”(链接)的恒星文章,内容涉及数据操纵和使数据处于“最佳”状态以便进行分析。但是,我想知道在工作环境中显示表格数据方面的最佳实践是什么?假设您的同事要您向他提供一些数据。在构造数据时使用哪些一般规则?“整理数据”中的准则是否适用于与非数据专业人员共享数据的情况?显然,这是非常特定于上下文的,但是我要问的是高层“最佳实践”。
Hadley Wickham 去年在JSS中撰写了一篇名为“ Tidy Data”(链接)的恒星文章,内容涉及数据操纵和使数据处于“最佳”状态以便进行分析。但是,我想知道在工作环境中显示表格数据方面的最佳实践是什么?假设您的同事要您向他提供一些数据。在构造数据时使用哪些一般规则?“整理数据”中的准则是否适用于与非数据专业人员共享数据的情况?显然,这是非常特定于上下文的,但是我要问的是高层“最佳实践”。
Answers:
正如Hadley所期望的那样,他的文章对整洁的数据进行了很好的定义,我几乎同意他的文章中的所有内容,并认为这不仅对“数据专业人员”有效。但是,如果避免一些更基本的问题,他提出的一些观点相对容易解决(例如,使用他编写的软件包)。这些问题大多数是Excel广泛使用的结果。Excel是一个有价值的工具,它有其优点,但是它的某些功能给数据分析人员带来了麻烦。
一些要点(根据我的经验):
我可能还没有想到其他几点。
首先,我通常是获取数据的人。因此,这可以作为我的愿望清单。
因此,我最重要的一点是:与将要分析数据的人交谈。
我快速浏览了一下这篇论文:Hadley撰写的许多文章都可以通过“规范化关系数据库”来总结。
但他还提到,根据实际情况,以长或宽形式包含相同的变量是明智的。
这是一个示例:我处理光谱。从物理/光谱的观点来看,光谱是例如强度作为波长函数:I = f(λ)。由于物理原因,此功能是连续的(并且可以连续微分)。仅出于实际原因(例如,数字计算机,测量仪器)才将特定的离散化。这显然指向长格式。但是,我的仪器在不同通道(CCD /检测器线或阵列)中测量不同的。数据分析还将每个视为变量。那将有利于广泛的形式。
但是,非标准化的数据显示/分发有一些实际的优点:
检查数据是否完整可能要容易得多。
如果数据实际上在数据库中(从软件的角度来看),则如规范化关系数据库中的连接表就可以。您可以在此处放置确保完整性的约束。如果以多个表的形式交换数据,则实际上,链接将是一团糟。
数据库规范化消除了冗余。在实际的实验室生活中,冗余用于双重检查完整性。
因此,不应过早删除冗余信息。
如今,内存/磁盘大小似乎不再是一个问题。但是我们的仪器产生的数据量也在增加。
我正在使用一种可以在几个小时内轻松产生250 GB高质量数据的仪器。那些250 GB为阵列格式。将其扩展为长形将使其爆炸至少4倍:每个阵列尺寸(横向x和y,以及波长λ)将变成一列,再加上一列强度。另外,我在数据分析过程中的第一步通常是将规范化的长格式数据转换回频谱范围内的格式。
这些归一化点解决的整洁工作是乏味的,而不是一件好事。但是,实际上,我通常在整理的其他方面花费更多的时间
在实践中确保数据的完整性和完整性是我整理数据工作的很大一部分。
数据不是易读格式/在格式略有不同之间切换:
我以许多文件的形式获取大量数据,通常一些信息存储在文件名和/或路径中:仪器软件和/或生成的文件格式不允许以一致的方式添加信息,因此我们或者具有一个将元信息链接到文件名的附加表(例如在关系数据库中),或者该文件名对重要信息进行编码。
错别字或文件名模式的微小变化都会在这里引起很多麻烦。