问题
在R中,如何对一个向量或因素型变量序列中的连续的相同值进行序列整合?
指南
毫无疑问,我们可以通过一个简单的循环来实现对向量中连续相同值的序列整合,但是在R中,实现这一循环过程所需的等待是十分漫长的。在此我们推荐使用rle()函数,这是个相对快捷的方法。
以RLE形式编码的数据可以通过inverse.rle()函数重新转换回向量形式。
我们可以发现,在上述过程中,所有的NA值都会被整合为长度为1的单独序列段,即便是两个NA值连续排列在了一起,那么我们该如何将它们整合到一起呢?一种可行的方法是使用特定的值来置换原有序列中的NA值——在数值向量中,我们可以使用Inf或其他特定数字;而在字符向量中,任意的字符串都可以被用来替换NA。当然了,我们必须保证所用的这些特定值在原有的数据向量中从没出现过。
处理因素型变量序列
rle()函数无法直接处理因素型变量序列,即便其中的因素仅仅是附带了层级关系的整数向量。因此在处理因素型变量序列中的连续相同值之前,我们需要将目标序列转换为一个整数向量或是字符向量,其中,使用整数向量的形式将会提高运行速度并节约内存使用,特别是在对于大数据集的分析中,但其结果相对来说较为难以解读;而使用字符向量的形式虽然将引致较慢的运行速度并消耗较多的内存资源,但在解读方面相对容易。
数析学院:http://datacademy.io/
我们致力于打造更加精要的课程,如果小伙伴们在工作和学习中遇到什么问题,可以给我们留言。