問題
在R中,如何對一個向量或因素型變量序列中的連續的相同值進行序列整合?
指南
毫無疑問,我們可以通過一個簡單的循環來實現對向量中連續相同值的序列整合,但是在R中,實現這一循環過程所需的等待是十分漫長的。在此我們推薦使用rle()函數,這是個相對快捷的方法。
以RLE形式編碼的數據可以通過inverse.rle()函數重新轉換回向量形式。
我們可以發現,在上述過程中,所有的NA值都會被整合為長度為1的單獨序列段,即便是兩個NA值連續排列在了一起,那么我們該如何將它們整合到一起呢?一種可行的方法是使用特定的值來置換原有序列中的NA值——在數值向量中,我們可以使用Inf或其他特定數字;而在字符向量中,任意的字符串都可以被用來替換NA。當然了,我們必須保證所用的這些特定值在原有的數據向量中從沒出現過。
處理因素型變量序列
rle()函數無法直接處理因素型變量序列,即便其中的因素僅僅是附帶了層級關系的整數向量。因此在處理因素型變量序列中的連續相同值之前,我們需要將目標序列轉換為一個整數向量或是字符向量,其中,使用整數向量的形式將會提高運行速度并節約內存使用,特別是在對于大數據集的分析中,但其結果相對來說較為難以解讀;而使用字符向量的形式雖然將引致較慢的運行速度并消耗較多的內存資源,但在解讀方面相對容易。
數析學院:http://datacademy.io/
我們致力于打造更加精要的課程,如果小伙伴們在工作和學習中遇到什么問題,可以給我們留言。