1

I'm not familiar with text processing in R and am stuck on how to remove a leading white space in a string. Here is some code:

set.seed(1234)
b <- paste0(sample(c("bbb ", " bbb "), 10, replace = TRUE), rep("ccc ddd", 10))
print(b)

 [1] "bbb ccc ddd"  " bbb ccc ddd" " bbb ccc ddd" " bbb ccc ddd" " bbb ccc ddd"
 [6] " bbb ccc ddd" "bbb ccc ddd"  "bbb ccc ddd"  " bbb ccc ddd" " bbb ccc ddd"

I figured out that I can remove trailing white spaces sub(' +$', '', b) but changing it to sub('$+ ', '', b) doesn't remove the leading white space. Guessing it is a quick fix...

AstroCB
  • 12,337
  • 20
  • 57
  • 73
Brian P
  • 1,496
  • 4
  • 25
  • 38
  • I wonder if you tried searching it first... – David Arenburg Sep 17 '14 at 21:25
  • Yes, it is duplicate. Feel free to remove. @DavidArenburg, yes, I tried searching, which is how I arrived at the reproducible code. If I used "trim" instead of "remove," I would have got to this post. – Brian P Sep 17 '14 at 21:38

2 Answers2

5

Try str_trim from stringr.

For the left side

> library(stringr)
> str_trim(b, "left")
# [1] "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd"
# [6] "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd"

Similarly, str_trim(b, "right") for the right side. And for both sides, its simply str_trim(b)

Rich Scriven
  • 97,041
  • 11
  • 181
  • 245
3

If you go to this question:

How to trim leading and trailing whitespace in R?

you'll see a very thorough answer on trimming whitespace: The answer there gives the following functions:

trim.leading <- function (x)  sub("^\\s+", "", x)

Applying to your data:

set.seed(1234)
b <- paste0(sample(c("bbb ", " bbb "), 10, replace = TRUE), rep("ccc ddd", 10))
b

trim.leading(b)

#[1] "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" 
#[8] "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd" "bbb ccc ddd"
Community
  • 1
  • 1
jalapic
  • 13,792
  • 8
  • 57
  • 87