名獲得縮寫我敢肯定有一個更雄辯的方式:從R中
NAMES <- data.frame(ID = "George Washington")
NAMES$ID <- as.character(NAMES$ID)
gsub(" ", "", paste(substr(data.frame(strsplit(NAMES$ID, " "))[[1]], 1, 1), collapse=" "))
[1]「GW」
名獲得縮寫我敢肯定有一個更雄辯的方式:從R中
NAMES <- data.frame(ID = "George Washington")
NAMES$ID <- as.character(NAMES$ID)
gsub(" ", "", paste(substr(data.frame(strsplit(NAMES$ID, " "))[[1]], 1, 1), collapse=" "))
[1]「GW」
我們可以匹配不在一個大寫一個或多個字符字母后面的大寫字母([^A-Z]+
)(使用正則表達式環視 - (?<=[A-Z])
)和一個空白(""
)
gsub("(?<=[A-Z])[^A-Z]+", "", NAMES$ID, perl = TRUE)
#[1] "GW"
或者沒有環視替代它並使用捕獲組。我們捕捉大寫字母爲一組,然後一個或多個非大寫字母與反向引用(\\1
)
gsub("([A-Z])[^A-Z]+", "\\1", NAMES$ID)
#[1] "GW"
爲安全起見,我們還可以包括字邊界
gsub("(\\b[A-Z])[^A-Z]+", "\\1", NAMES$ID)
更換
使用'gsub(「[^ AZ] *([AZ])[^ AZ] *」,「\\ 1」,NAMES $ ID)' –