2016-11-12 260 views
0

我可能在問一個微不足道的問題,但我寧願問和學習,而忽略它。我有一個名爲Names的矢量,它明顯包含所有年齡段的男性和女性的姓名。字符串操作

我的任務是保留每個人的全名。原始載體Names的格式如下:

'last name','title'.'first name' 

例子:

Names <- c("Jackson, Mr. James", "Johnson, Miss. Elizabeth") 

我如何保留一切(全名),比標題(「先生」,其他「小姐」。等)?

+0

'gsub'會做的伎倆 –

回答

2

您可以使用此正則表達式匹配整個事情:(see on regex101

(.*),.*\. (.*) 

組1的姓氏,第2場比賽第一名稱相匹配。

然後,您可以替換每個匹配\2 \1firstname lastname\1 \2替換爲lastname firstname

代碼

gsub("(.*),.*\. (.*)", "\2 \1", yourArray) 
+0

還有很多很多其他的標題,也許更好用空格替換','和'.'之間的所有內容? – zx8754

+0

你需要'perl = TRUE'嗎?並不確定是否區分大小寫標誌:在標準R中它會是'ignore.case = TRUE'(但是當'perl = TRUE'時可能會將大小寫不敏感的標誌放入正則表達式中? –

+0

已更新我的答案。 'perl = TRUE'沒有必要,這可以在任何正則表達式引擎中工作。更新後的答案不再需要標誌。 –