Question

How do I replace an empty string?

This:

x = c("","b")
gsub("","taco",x)

produces:

"taco"      "tacobtaco"

instead of:

"taco"      "b"

Is there any way to replace an empty string?

Was it helpful?

Solution

I would use nchar here:

 x[nchar(x)==0] <- "taco"

EDIT

If you are looking for performance so you should use nzchar:

x[!nzchar(x)] <- "taco"

OTHER TIPS

x = c("","b")
gsub("^$","taco",x)

I wouldn’t use gsub here – semantically, I think of gsub as replacing parts within a string. For replacing a whole string, I would just use subsetting. And since you’re searching for a fixed string (''), it doesn’t even need regular expressions:

x[x == ''] = 'taco'

(Of course this reassigns the original vector x, whereas gsub just returns the modified result.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top