【问题标题】:Best way to transform source data?转换源数据的最佳方法?
【发布时间】:2020-05-16 20:13:48
【问题描述】:

在 R 中工作。但我认为这个问题是普遍的。

《华尔街日报》 对美国疾病感染率的数据集进行了可视化:

X 轴是年份。 Y轴是状态。

每个图块的红色阴影是该年记录的特定州的感染率强度。

被可视化的源数据集排列如下:

数据集中的每一行对应一个国家在给定年份的单一感染率。因此,可视化中的每个红色图块对应于数据集中的一行。

但是如果数据集看起来像这样呢?

现在,每一行对应一个状态。每个州/行都有多个感染率,每年记录一个。这可能与现实世界中捕获数据的方式相匹配,因为对于每一年或每一天(在冠状病毒的情况下)您跟踪感染率,您只需添加一个新列(而不是 50 个新行)。

问题在于,虽然这种布局更人性化,但它对 R 语言不是很友好。我们可以轻松地根据源数据集排列创建切片可视化,其中数据按感染率排列,但如果按状态排列则不那么容易。

最后,我的问题是——在 Excel 中,有没有一种简单的方法可以将数据从第二种布局转换为第一种布局?

【问题讨论】:

  • 在 R 中,我喜欢 tidyr 包 (tidyr.tidyverse.org/reference/pivot_longer.html) 中的 pivot_wider() 来进行这种转换。在 excel 中,这可以通过数据透视表来完成。这就是你要找的吗?
  • 当您问“有没有一种简单的方法可以将数据从第二个布局转换到第一个布局时,在 Excel 中?是的,有。它叫做 PowerPivot 和随附的 M 语言。它在 Excel 中是免费的;您只需要调整一些隐藏的控件即可将其公开。这太可怕了。我永远不会回到 PowerPivot 中的数据争吵。但是,是的,它就在那里,你可以重塑里面的数据。
  • 谢谢大家。看起来我正在寻找“将数据框从宽格式重塑为长格式”。需要了解如何在 R 中清理/转换这样的数据,以便在加载到 R 后执行这些活动。同时,作为快捷方式,我使用了 openrefine.org GUI,它允许我上传源数据、转置单元格成行(即从宽到长),然后下载新转换的源数据。有关如何执行此操作的更多信息,请参阅“将数据从宽格式转换为长格式”部分:paldhous.github.io/ucb/2019/dataviz/week5.html

标签: r import import-from-excel import-from-csv


【解决方案1】:

您可以使用免费的开源OpenRefine 工具中的转置功能在将数据文件加载到 R 之前准备数据文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 2020-06-05
    • 2011-01-24
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多