如何在R中缩写字符串

时间:2019-05-08 16:29:42

标签: r stringr

我需要将部门名称缩写为首字母,以便strDept="Department of Justice"成为strDeptAbbr = "DoJ".

如何使用stringr缩写字符串?
谢谢

4 个答案:

答案 0 :(得分:19)

使用base R,您可以执行以下操作:

abbreviate("Department of Justice", 1, named = FALSE)

[1] "DoJ"

答案 1 :(得分:4)

您可以使用:

library(stringr)
x="Department of Justice"
new_list=strsplit(x, " ")
str_sub(as.list(new_list[[1]]),1,1)

@tmfmnk先前的回答在我看来要好得多。

编辑:

正如@Lyngbakr指出的那样,以下代码将产生请求的最终结果:

paste(str_sub(as.list(new_list[[1]]),1,1), collapse = "")

答案 2 :(得分:2)

另一种但过于“复杂”的base解决方案:

paste(unlist(lapply(strsplit(strDept," "),function(x) substring(x,1,1))),collapse = "")
#[1] "DoJ"

您可以避免使用@Lyngbakr建议的lapply

 paste(substring(unlist(strsplit(strDept," ")), 1, 1), 
       collapse = "")
[1] "DoJ"

如果您要坚持使用stringr

paste(substring(stringr::str_split(strDept, pattern = " ", simplify = TRUE), 1, 1), collapse = "")

答案 3 :(得分:1)

我真的很喜欢@tmfmnk解决方案,但是如果您要坚持使用Strings,则可以使用以下方法:

library(purrr)
library(stringr)
x = "Department of Justice"
x %>% 
  str_split(pattern = " ") %>%
  map(str_trunc, 1, ellipsis = "") %>%
  map(str_c, collapse="") %>%
  flatten_chr()

[1] "DoJ"