Pergunta

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?

Foi útil?

Solução

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"

Outras dicas

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top