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"
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?
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.)