stringr - r - 如何使用stringr ()简化字符串

我需要按第一个字符缩写部门名, 以便strDept="Department of Justice"成为strDeptAbbr ="DoJ".

如何使用stringr进行该操作?
谢谢你

时间:

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


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



[1] "DoJ"



可以使用:


library(stringr)


x="Department of Justice"


new_list=strsplit(x, " ")


str_sub(as.list(new_list[[1]]),1,1)



就像@Lyngbakr指出的,下面的代码将生成请求的最终结果:


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



一个可选,但是,过于复杂的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 = "")



我真的喜欢@tmfmnk解决方案,但是,如果你想要坚持stringr,你可以使用以下内容:


library(purrr)


library(stringr)


x = "Department of Justice"


x %>% 


 str_split(pattern = " ") %>%


 map(str_trunc, 1, ellipsis = "") %>%


 map(str_c, collapse="") %>%


 unlist()



[1] "DoJ"



...