宽数据转换成长数据简易工具

处理数据常常会遇到两张数据格式,一种是长数据(long data),另一种是宽数据(wide data)。 以常见的股票收盘价数据为例,表1是长数据常见形式,而表2是宽数据常见形式。而R语言作为处理数...

处理数据常常会遇到两张数据格式,一种是长数据(long data),另一种是宽数据(wide data)。

以常见的股票收盘价数据为例,表1是长数据常见形式,而表2是宽数据常见形式。而R语言作为处理数据的好手,提供了非常多工具来处理这两种数据,以及二者间的转换工具。

attachments-2021-06-Xlv0nPHi60d872e24371d.png

attachments-2021-06-e3096kHp60d872f0b12ed.png

两种数据格式的基本介绍

观察表1的数据格式,可以看到长数据例子中,前两列是日期和股票代码,第三列是某日某只股票的收盘价。这类似于数据库里面的主键(primary key),通过前两列定义一个唯一标志符,第三列是标志符对应的值。当然,可以定义更多列作为标志符(例如加入一列数据字段factor,这里是收盘价),而每一个标志符也可以对应更多列数据(例如加入开盘价等),如表3所示。而如果有新的日期或股票数据进来,新增几行即可。

attachments-2021-06-OaN32KzK60d87320b0311.png

而宽数据则不一样。在表2中,第一列规定了每一行收盘价的日期,每一列规定了收盘价所属的股票。每一个(二维)宽数据对象只能对应一种数据,如果需要另一种数据,例如开盘价,则需要重新做一个这样的表格,第一行和第一列不变,中间的数据值进行调整即可。而如果有一只新上市的股票,则需要新增一列。

除了上述的不同,二者还有一个非常重要的区别就是对缺失值的处理方式。长数据往往不记录缺失值,而宽数据为了保持数据一致性则需要记录。例如金田实业(000003)这只股票在2002年6月14日退市,之后便没有收盘价。如果我们的数据从2000年开始记录所有股票的收盘价,对于长数据格式,可以不用再记录数据了,而宽数据则必须从退市之后记录空值(NULL或NA)。

两种数据类型各有优缺点,宽数据 更利于阅读, 长数据更利于存储和分析

在实际使用中 常用的是宽数据形式,但在很多工具中 使用长数据进行画图和分析,在这里我们提供了一个 宽数据转换成 长数据的简易工具,可以直接从Excel复制过来,然后转换后 再复制出去

attachments-2021-06-vZb0SnHp60d8740231073.png

使用简单,一目了然

有两个选项可以自己定义 转换哪些列,保留哪些列

attachments-2021-06-IAhcnKSY60d8745cc6907.png





  • 发表于 2021-06-27 20:52
  • 阅读 ( 67 )
  • 分类:软件工具

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
admin

25 篇文章

作家榜 »

  1. 祝让飞 118 文章
  2. 柚子 91 文章
  3. 刘永鑫 64 文章
  4. 生信分析流 55 文章
  5. SXR 44 文章
  6. 张海伦 31 文章
  7. 爽儿 25 文章
  8. admin 25 文章