Giter Club home page Giter Club logo

stringb's Introduction

stringb

Codecov test coverage R-CMD-check

stringb provides a zero-dependency (mostly) drop in replacement for stringr implemented on top of base R regular expressions. This is useful if you are finding stringr's stringi dependency to be onerous for your users (since it requires compilation and a large unicode database).

stringb should match stringr behaviour as much as possible. The main exceptions are listed below:

  • stringb uses either Perl-compatible regexps (the default) or POSIX 1003.2 extended regexps (with regexp()). By and large, these are represent subsets of the ICU backed engine that stringi provides, but there maybe be subtle differences in edge cases.

  • stringr always returns UTF-8 encoded strings; stringb follows the same rules as base R.

  • Most stringr functions are recycled over all arguments. stringb provides much more limited recycling: pattern is not recycled; and str_sub() only recycles start and stop, not string.

Installation

You can install the development version of stringb with:

remotes::install_github("hadley/stringb")

stringb's People

Contributors

hadley avatar shrektan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

stringb's Issues

stringb on CRAN

Are you aware of this one? Seems to overlap somewhat:
http://cloud.r-project.org/package=stringb

stringb: Convenient Base R String Handling

Base R already ships with string handling capabilities 'out- of-the-box' but lacks streamlined function names and workflow. The 'stringi' ('stringr') package on the other hand has well named functions, extensive Unicode support and allows for a streamlined workflow. On the other hand it adds dependencies and regular expression interpretation between base R functions and 'stringi' functions might differ. This packages aims at providing a solution to the use case of unwanted dependencies on the one hand but the need for streamlined text processing on the other. The packages' functions are solely based on wrapping base R functions into 'stringr'/'stringi' like function names. Along the way it adds one or two extra functions and last but not least provides all functions as generics, therefore allowing for adding methods for other text structures besides plain character vectors.

Functions To Change the CASE?

It would be great to have equivalents for the following stringr functions:

  • str_to_upper(string, locale = "en")
  • str_to_lower(string, locale = "en")
  • str_to_title(string, locale = "en")
  • str_to_sentence(string, locale = "en")

For the first two, there are base alternatives (tolower(x) & toupper(x)), but AFAIK nothing direct for the last two.

str_replace() with function

Something like

str_replace <- function(x, pattern, replace, ...) {
  loc <- gregexpr(pattern, x, perl = TRUE)

  out <- lapply(seq_along(out), function(i) {
    match <- regmatches(x[[i]], loc[[i]])
    transform(match, ...)
  })

  regmatches(x, loc) <- out
  x
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.