Вопрос

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?

Это было полезно?

Решение

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"

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top