0
如何用R劃破最後一個空格?在某些情況下,有多個空格(例如aa
),但我只想用短劃線(例如bb
)劃分最後一個空格。代碼如下:如何用R劃破最後一個空格R
aa <- c("Rapamycin 20nM", "Tributyltin chloride 100nM")
bb <- c("Rapamycin_20nM", "Tributyltin chloride_100nM")
謝謝。
如何用R劃破最後一個空格?在某些情況下,有多個空格(例如aa
),但我只想用短劃線(例如bb
)劃分最後一個空格。代碼如下:如何用R劃破最後一個空格R
aa <- c("Rapamycin 20nM", "Tributyltin chloride 100nM")
bb <- c("Rapamycin_20nM", "Tributyltin chloride_100nM")
謝謝。
sub("(.*) ", "\\1_", aa)
[1] "Rapamycin_20nM" "Tributyltin chloride_100nM"
對正則表達式
.
一些細節匹配任何字符。 .*
匹配任何字符的零個或多個副本。將.*
放在括號內可以保存匹配材料以備後用。 現在整個事情。 (.*)
匹配任意數量的字符後跟空白。因爲匹配是「貪婪」,所以直到最後爲空。保存空白字符串之前的字符串,以便當我們寫出替換字符時,我們只需複製空白字符之前的內容並用下劃線替換空白字符。
這絕對是最簡單和最直接的選擇。 – JDB
使用類似'「(?= [^] + $)''和'perl = TRUE'?你試過什麼了? – A5C1D2H2I1M1N2O1R2T1
或者您可以使用'[]([^] *)$'replace'_ $ 1'這也可以替換字符串開始/結尾處的空格(如果它是唯一的)。 – sln
@JDB我嘗試了'sub(「(?= [^] + $)」,「_ \\ 1」,aa,perl = TRUE)',並且似乎得到了期望的輸出.... – A5C1D2H2I1M1N2O1R2T1