我有以下包含个人全名的元素的字符向量。
Invalid argument supplied for foreach()
array_push() expects parameter 1 to be array, null given
我现在希望提取每个大写字母,删除其间的空格。这将给出首字母缩写。我的预期输出是:
strings <- c("Michelle Jane Smith", "Elise Alice Smith", "Ronald James Smith", "Thomas John Smith")
这可能吗?
答案 0 :(得分:2)
使用str_extract_all
包的stringr
命令,您可以提取与大写字母("[A-Z]+"
)模式匹配的字符并将它们粘贴在一起。
library(stringr)
sapply(str_extract_all(string = strings, pattern = "[A-Z]+"),
function(a) paste(a, collapse = ""))
#[1] "MJS" "EAS" "RJS" "TJS"
或者您可以只提取strings
sapply(strsplit(x = strings, split = " "), function(a)
paste(substr(x = a, start = 1, stop = 1), collapse = ""))
#[1] "MJS" "EAS" "RJS" "TJS"
答案 1 :(得分:2)
gsub
gsub("[a-z]| ", "", strings)
[1] "MJS" "EAS" "RJS" "TJS"
答案 2 :(得分:2)
使用gsub
:
gsub("[a-z ]", "", strings)
答案 3 :(得分:2)
或使用捕获组
fplot(@(x) 1/x)