我可能在問一個微不足道的問題,但我寧願問和學習,而忽略它。我有一個名爲Names
的矢量,它明顯包含所有年齡段的男性和女性的姓名。字符串操作
我的任務是保留每個人的全名。原始載體Names
的格式如下:
'last name','title'.'first name'
例子:
Names <- c("Jackson, Mr. James", "Johnson, Miss. Elizabeth")
我如何保留一切(全名),比標題(「先生」,其他「小姐」。等)?
我可能在問一個微不足道的問題,但我寧願問和學習,而忽略它。我有一個名爲Names
的矢量,它明顯包含所有年齡段的男性和女性的姓名。字符串操作
我的任務是保留每個人的全名。原始載體Names
的格式如下:
'last name','title'.'first name'
例子:
Names <- c("Jackson, Mr. James", "Johnson, Miss. Elizabeth")
我如何保留一切(全名),比標題(「先生」,其他「小姐」。等)?
您可以使用此正則表達式匹配整個事情:(see on regex101)
(.*),.*\. (.*)
組1的姓氏,第2場比賽第一名稱相匹配。
然後,您可以替換每個匹配\2 \1
爲firstname lastname
或\1 \2
替換爲lastname firstname
代碼
gsub("(.*),.*\. (.*)", "\2 \1", yourArray)
還有很多很多其他的標題,也許更好用空格替換','和'.'之間的所有內容? – zx8754
你需要'perl = TRUE'嗎?並不確定是否區分大小寫標誌:在標準R中它會是'ignore.case = TRUE'(但是當'perl = TRUE'時可能會將大小寫不敏感的標誌放入正則表達式中? –
已更新我的答案。 'perl = TRUE'沒有必要,這可以在任何正則表達式引擎中工作。更新後的答案不再需要標誌。 –
'gsub'會做的伎倆 –