[英]Extracting character from string
我有一個字符串可以說
text1 <- "John K Doe"
我想返回:
"John Doe"
"J K Doe"
我使用了strsplit
, paste
和substr
,如下所示:
paste(strsplit(text1, " ")[[1]][1], strsplit(text1, " ")[[1]][3])
[1] "John Doe"
paste(substr(text1, 1, 1), strsplit(text1, " ")[[1]][2], strsplit(text1, " ")[[1]][3])
[1] "J K Doe"
如您所見,此返回結果是我所期望的。 但是,我想看看是否有任何簡單或更有效的方法來做到這一點。
謝謝,我感謝所有支持和幫助。
使用strsplit()
的另一種方法是對gsub()
使用正則表達式。 如果您希望以后有一些更復雜的規則來提取名稱和縮寫,則此選項可能會更有用。
x <- "John K Doe"
gsub("^(\\w+) \\w (\\w+)$", "\\1 \\2", x)
[1] "John Doe"
gsub("^(\\w)\\w* (\\w) (\\w+)$", "\\1 \\2 \\3", x)
[1] "J K Doe"
這是一種與您的方法大體相似的方法,但僅一次strsplit
一次
sapply(strsplit(text1," "), function(a) paste(a[1],a[3]))
#OR
sapply(strsplit(text1," "), function(a) paste(a[-2], collapse = " "))
#[1] "John Doe"
sapply(strsplit(text1," "), function(a) paste(substr(a[1],1,1),a[2],a[3]))
#[1] "J K Doe"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.