问题
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?
回答1:
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"
回答2:
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.)
回答3:
x = c("","b")
gsub("^$","taco",x)
来源:https://stackoverflow.com/questions/22565118/how-do-i-gsub-an-empty-string-in-r