2015-06-02 51 views
0

我有一個數據集,其中約有200 \N,我想用上面的行中的日期/天值替換\N。如641行,我想將日期改爲10月14日和週一至:用以上行中的日期值替換字符串

enter image description here

如果這可以在R上做,做的事日期的格式?目前,這些日期顯示爲因素。

回答

4

容易在Excel中。更換所有\N什麼也沒有,選擇兩個相關列,HOME>編輯,查找&選擇,轉至特殊...,毛坯,然後

=

按Ctrl + 輸入

然後再次複製範圍和HOME>剪貼板 - 粘貼,粘貼特殊...,值,確定在頂部。

+2

優秀的使用標準的功能和CTRL + ENTER鍵式適用於整個選擇。 –

+0

抱歉,我仍然感到困惑你的意思是= ^(上),什麼,當我試圖類型在Excel中說,有與公式 – lll

+1

我想通了一個問題。謝謝! – lll

0

這可以通過快速使用FindFindNext在Excel中快速完成。假設您想要替換ActiveSheet上的所有\N,則此代碼將在其全部替換後終止。 Offset(-1)獲得一排的價值。

Sub ReplaceWithValueAbove() 

    Dim rng_search As Range 
    Set rng_search = ActiveSheet.UsedRange.Find("\N") 

    While Not rng_search Is Nothing 
     'set to row above 
     rng_search = rng_search.Offset(-1) 

     'find the next one 
     Set rng_search = ActiveSheet.UsedRange.FindNext() 
    Wend 

End Sub 

之前和之後的圖片

beforeafter

3

如果這是一個您導入到R中的Excel文件,那麼您需要了解R如何處理反斜槓字符(這是屏幕截圖中顯示的內容)以及哪些用於「轉義」字符。見?Quotes。一旦數據在R中,它可能都是因子列。

如果數據框被命名爲「逸」,那麼這應該工作,真正使丟失的真正價值:

is.na(dat) <- dat == "\\N" # need to escape the escape character. 

然後從包動物園使用na.locf:

library(zoo) # lots of useful methods in zoo. 
dat$date <- na.locf(dat$date) 
dat$day_of_week <- na.locf(dat$day_of_week) 

這些方法應該工作與任何類的列,這些將而不是是R日期分類變量,直到您進行轉換。

1

可以R中迎刃而解用下面的代碼:

ListNa <- grep("\\N", a$date) 
ListPrewRow <- ListNa-1 
data[ListNa,c("date", "day")] <- data [ListPrewRow,c("date", "day")] 

其中:

  • 「數據」是數據表
  • 「日期」和「天」就是要列更換。