2016-06-08 96 views
0

我試圖替換所有的「。」。在我的數據框的特定列中加上「/」。每個單元格中還有其他字符,我想確保只更改「。」。 當我使用gsub時,我得到了一個輸出,看起來是進行更改,但是當我去View()時,這些更改實際上並沒有進行......我認爲gsub應該實際上改變數據幀中的值。我使用不正確?下面我有我的代碼。使用`gsub`替換點

gsub(".", "/", spy$Identifier, ignore.case = FALSE, perl = FALSE, 
    fixed = TRUE, useBytes = FALSE) 

我也試過子,但低於我的代碼改變每個條目本身爲「/」,我不知道如何去改變它。

spy$Identifier <- sub("^(.).*", "/", spy$Identifier) 

謝謝!

+4

我會推薦'chartr()'而不是'gsub()',因爲它是一對一的字符轉換。 'chartr(「。」,「/」,spy $ Identifier)'你就完成了。 –

+0

直到你提供一個可重複的例子,我們才能真正走得更遠。 –

+0

沒關係,下面的答案工作...謝謝你的幫助! – Mel

回答

2

我的建議是逃避「。」字符:
spy$Identifier <- gsub("\\.", "/", spy$Identifier)
在正則表達式中,句點是一個與任何字符匹配的特殊字符。 「逃離」它告訴搜索尋找一個實際的時期。在R的gsub中,這是用兩個反斜槓(即:「\\」)完成的。在其他語言中,它通常只是一個反斜槓。

+0

這工作,非常感謝你! – Mel

+2

我不明白,OP已經使用'fixed = TRUE'。這也應該起作用。而且它比轉義點更有效率 - 因此通常是推薦的解決方案。 –