We are happy to announce that stringr 1.4.0 is now on CRAN. stringr provides a cohesive set of functions designed to make working with strings as easy as possible. For a full list of changes, please see the release notes .

You can install the released version from CRAN:

1
install.packages("stringr")
1
library(stringr)

New functions#

Thanks to the hard work of John Harmon at Tidyverse Developer Day , stringr has three new functions.

str_starts() and str_ends() detect the presence or absence of patterns at the beginning or end of strings.

1
2
3
4
5
6
7
8
9
fruit <- c("apple", "banana", "pear", "pineapple")
str_starts(fruit, "p")
#> [1] FALSE FALSE  TRUE  TRUE
str_starts(fruit, "p", negate = TRUE)
#> [1]  TRUE  TRUE FALSE FALSE
str_ends(fruit, "e")
#> [1]  TRUE FALSE FALSE  TRUE
str_ends(fruit, "e", negate = TRUE)
#> [1] FALSE  TRUE  TRUE FALSE

The new str_to_sentence() function capitalizes strings with sentence case, like so:

1
2
str_to_sentence("the quick brown dog")
#> [1] "The quick brown dog"

Support for negate#

str_subset() , str_detect() , and str_which() now have the negate argument, which is used to find the elements that do not match a pattern (as seen above in the str_starts() and str_ends() examples).

Acknowledgements#

Thank you to everyone who contributed to this release: @AmeliaMN , @batpigandme , @beckymaust , @BenjaminLouis , @blablablerg , @bschneidr , @bwiernik , @ctmann , @damianooldoni , @dan-reznik , @denrou , @diegogarcilazo , @DieselAnalytics , @elisakreiss , @giovannikraushaar , @hadley , @hammer , @jennybc , @jimhester , @jonocarroll , @jonthegeek , @jrnold , @juanrocha , @kmace , @krlmlr , @osorensen , @paleolimbot , @pdelboca , @pgrandinetti , @PirateGrunt , @samhinshaw , @sastoudt , @seanpor , @yj-danielyang , and @yutannihilation .