David Perea
David Perea

Reputation: 149

Remove whitespace after a symbol (hyphen) in R

I'm trying to remove the hyphen that divides a word from a string. For example, the word example: "for exam- ple this".

a <- "for exam- ple this"

How could I join them?

I have tried to remove the script using this command:

str_replace_all(a, "-", "")

But I got this back:

"for exam ple this"

It does not return the word united. I have also tried this: str_replace_all(a, "- ", "") but I get nothing.

Therefore I have thought of first removing the white spaces after a hyphen to get the following

"for exm-ple this"

and then eliminating the hyphen.

Can you help me?

Upvotes: 2

Views: 317

Answers (3)

akrun
akrun

Reputation: 887291

Here is an option with sub where we match the - followed by zero or more spaces (\\s*) and replace with -

sub("-\\s*", "-", a)
#[1] "for exam-ple this"

If it is to remove all spaces instead of a single one, then replace with gsub

gsub("-\\s*", "-", a)

Upvotes: 2

Justin Landis
Justin Landis

Reputation: 2071

If you are just trying to remove the whitespace after a symbol then Ricardo's answer is sufficient. If you want to remove an unknown amount of whitespace after a hyphen consider

str_replace_all(a, "- +", "-")
#[1] "for exam-ple this"
b <- "for exam-      ple this"
str_replace_all(b, "- +", "-")
#[1] "for exam-ple this"

EDIT --- Explaination

The "+" is something that tells r how to match a string and is part of the regular expressions. "+" specifically means to match the preceding character (or group/set) 1 or more times. You can find out more about regular expressions here.

Upvotes: 1

Ricardo Semi&#227;o
Ricardo Semi&#227;o

Reputation: 4456

str_replace_all(a, "- ", "-")

Upvotes: 1

Related Questions