我了解了Stringr库,并尝试使用它来删除字符串中的空格,但是我不明白为什么当我从向量中为字符串建立索引时,它不会将其删除。
ex
是一个向量,其字符串类似于" 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"
我想编写一个循环来删除空格,但是我不明白为什么在使用stringr
时ex[1]
不起作用
以下是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"
)
我可以在for循环中使用哪个库来删除空格?
答案 0 :(得分:2)
使用trimws
中的base R
会更容易
trimws(ex)
str_extract
不能重现OP的问题
stringr::str_replace_all(ex[1], fixed(" "), "")
#[1] "1950"
答案 1 :(得分:2)
str_trim
中的 library(stringr)
将起作用
即
trimmed = str_trim(your_string, which = c('left'))
对于右修剪,您可以将其设置为right
,或者将其两面都设置为both
。在这种情况下,您也不需要循环。字符串向量可以直接传递到str_trim
。