看教程不够直观,那就看视频吧! >>点击加载视频
处理数据常常会遇到两张数据格式,一种是长数据(long data),另一种是宽数据(wide data)。
以常见的股票收盘价数据为例,表1是长数据常见形式,而表2是宽数据常见形式。而R语言作为处理数据的好手,提供了非常多工具来处理这两种数据,以及二者间的转换工具。
观察表1的数据格式,可以看到长数据例子中,前两列是日期和股票代码,第三列是某日某只股票的收盘价。这类似于数据库里面的主键(primary key),通过前两列定义一个唯一标志符,第三列是标志符对应的值。当然,可以定义更多列作为标志符(例如加入一列数据字段factor,这里是收盘价),而每一个标志符也可以对应更多列数据(例如加入开盘价等),如表3所示。而如果有新的日期或股票数据进来,新增几行即可。
而宽数据则不一样。在表2中,第一列规定了每一行收盘价的日期,每一列规定了收盘价所属的股票。每一个(二维)宽数据对象只能对应一种数据,如果需要另一种数据,例如开盘价,则需要重新做一个这样的表格,第一行和第一列不变,中间的数据值进行调整即可。而如果有一只新上市的股票,则需要新增一列。
除了上述的不同,二者还有一个非常重要的区别就是对缺失值的处理方式。长数据往往不记录缺失值,而宽数据为了保持数据一致性则需要记录。例如金田实业(000003)这只股票在2002年6月14日退市,之后便没有收盘价。如果我们的数据从2000年开始记录所有股票的收盘价,对于长数据格式,可以不用再记录数据了,而宽数据则必须从退市之后记录空值(NULL或NA)。
两种数据类型各有优缺点,宽数据 更利于阅读, 长数据更利于存储和分析
在实际使用中 常用的是宽数据形式,但在很多工具中 使用长数据进行画图和分析,在这里我们提供了一个 宽数据转换成 长数据的简易工具,可以直接从Excel复制过来,然后转换后 再复制出去
使用简单,一目了然
有两个选项可以自己定义 转换哪些列,保留哪些列
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!