Reputation: 2825
I learned about stringr library and tried to use it to remove whitespace from a string, but I don't understand why it would not remove it when I index a string from a vector.
ex
is a vector with strings similar to " 1950"
> library(stringr)
> str_replace_all(ex[1], fixed(" "), "")
[1] " 1950"
> str_replace_all(" 1950", fixed(" "), "")
[1] "1950"
> str(" 1950")
chr " 1950"
> str(ex[1])
chr " 1950"
I wanted to write a loop to remove the whitespaces, but I don't understand why stringr
does not work when I use ex[1]
Following is dput(ex)
c(" 1950", " 1951", " 1952", " 1953", " 1954",
" 1955", " 1956", " 1957", " 1958", " 1959", " 1960",
" 1961", " 1962", " 1963", " 1964", " 1965", " 1966",
" 1967", " 1968", " 1969", " 1970", " 1971", " 1972",
" 1973", " 1974", " 1975", " 1976", " 1977", " 1978",
" 1979", " 1980", " 1981", " 1982", " 1983", " 1984",
" 1985", " 1986", " 1987", " 1988", " 1989", " 1990",
" 1991", " 1992", " 1993", " 1994", " 1995", " 1996",
" 1997", " 1998", " 1999", " 2000", " 2001", " 2002",
" 2003", " 2004", " 2005", " 2006", " 2007", " 2008",
" 2009", " 2010", " 2011", " 2012", " 2013", " 2014",
" 2015", " 2016", " 2017", " ", "Provided by : All China Marketing Resarch"
)
What library can I use in a for loop to remove whitespaces?
Upvotes: 0
Views: 299
Reputation: 155
str_trim
within library(stringr)
would work
i.e
trimmed = str_trim(your_string, which = c('left'))
For right trim, you could set it to right
or for both sides, both
. You also wouldn't need to loop in this case. A vector of strings can be passed directly to str_trim
.
Upvotes: 2
Reputation: 887991
It is easier with trimws
from base R
trimws(ex)
The OP's issue is not reproducible with str_extract
stringr::str_replace_all(ex[1], fixed(" "), "")
#[1] "1950"
Upvotes: 2