【问题标题】:Which format is tidy?哪种格式整洁?
【发布时间】:2018-06-26 00:08:11
【问题描述】:

假设我有一个 ACT 考试成绩数据集。每个“观察”都是学生参加 ACT 的结果。 ACT 有五个科目:阅读、英语、数学、科学和写作(加上综合分数)。每个测试科目都有一个量表分数、一个国家百分位排名和一个大学准备指标(YN)。

我的问题是(而且似乎总是因为我经常处理评估数据),哪种格式是“整洁”的?

  • 其中每一行是一个唯一的学生测试 + 科目组合,每个值都有一个 subject 列,然后是 scaleScorepercentilereadiness 列。
  • 其中每一行都是一个唯一的学生测试,所有科目及其各自的值都列在单独的列中。
  • 或者我有类似于第一个选项的东西,但将每个主题放在六个表中,每个主题都有一个键加入?

我已经在 SQL + Excel 中工作了一段时间,但我想在 R 中扩展我的 EDA 技能。任何帮助将不胜感激!重点是使用ggplot 进行后续可视化。我猜答案可能只是“视情况而定”,并愿意 gatherspread 用于不同的绘图目的。

【问题讨论】:

  • Here's the canonical paper,但这确实取决于。如果您试图将科学分数与数学和阅读分数相匹配,则您的数据必须是宽格式的。如果您尝试在 ggplot 中按主题绘制分数密度,则需要采用长格式。
  • 在许多情况下,数据过于整洁可能是一个真正的障碍,特别是如果您想跨行运行计算。知道如何重塑数据比拘泥于单一格式更重要。只是我的意见。

标签: r ggplot2 tidyr


【解决方案1】:

列是学生、测试、科目、scaleScore、百分位数、准备情况。

学生和测试变量将识别每个观察结果。

主题是一个变量。阅读、英语、数学等是主题变量的。这本质上是 tidy 方法的核心,这种方法往往很深,而不是很宽,并且适合于加入、分组、绘制等等。

或者为了让它更整洁,score 和 scoreType 是变量,它们各自的值作为观察值包含在内。

无论哪种方式,在一个表中,学生和测试将在多行上重复。但这有助于说明整洁的观点。显然,就大局而言,规范化表是值得考虑的。

【讨论】:

    猜你喜欢
    • 2018-11-30
    • 2015-08-16
    • 2016-12-13
    • 2020-02-18
    • 2010-11-08
    • 2016-05-15
    • 2017-09-06
    • 1970-01-01
    • 2016-09-13
    相关资源
    最近更新 更多