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,101
  • 20
  • 56
  • 70
Brian P
  • 1,476
  • 3
  • 22
  • 37
  • 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
  • 93,629
  • 10
  • 165
  • 233
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
  • 12,858
  • 8
  • 53
  • 80