Trim 包含控制字符空白的字符串
Trim a string that has control character whitespace
x = rawToChar(as.raw(c(0xa0, 0x31, 0x31, 0x2e, 0x31, 0x33, 0x32, 0x35, 0x39, 0x32)))
trimws(x) # this doesn't trim it!
我如何 trim x 或任何类似的字符串,其前导 and/or 尾随空格不是 trim 由 trimws?
披露: 这个问题是 的延续,但我被要求创建一个单独的问题。
编辑:
这是一个建议的代码,欢迎任何更优雅的解决方案
trimws2 = function(x) {
sapply(x, FUN=function(x) {
xraw = charToRaw(x)
xraw[xraw==as.raw(0xa0)]=charToRaw(" ")
trimws(rawToChar(xraw))
})
}
trimws2(x)
使用 stringr
包中的 str_trim
。
数据:
> x = rawToChar(as.raw(c(0xa0, 0x31, 0x31, 0x2e, 0x31, 0x33, 0x32, 0x35, 0x39, 0x32)))
> x
[1] " 11.132592"
然后写:
library(stringr)
str_trim(x)
[1] "11.132592"
x = rawToChar(as.raw(c(0xa0, 0x31, 0x31, 0x2e, 0x31, 0x33, 0x32, 0x35, 0x39, 0x32)))
trimws(x) # this doesn't trim it!
我如何 trim x 或任何类似的字符串,其前导 and/or 尾随空格不是 trim 由 trimws?
披露: 这个问题是
编辑: 这是一个建议的代码,欢迎任何更优雅的解决方案
trimws2 = function(x) {
sapply(x, FUN=function(x) {
xraw = charToRaw(x)
xraw[xraw==as.raw(0xa0)]=charToRaw(" ")
trimws(rawToChar(xraw))
})
}
trimws2(x)
使用 stringr
包中的 str_trim
。
数据:
> x = rawToChar(as.raw(c(0xa0, 0x31, 0x31, 0x2e, 0x31, 0x33, 0x32, 0x35, 0x39, 0x32)))
> x
[1] " 11.132592"
然后写:
library(stringr)
str_trim(x)
[1] "11.132592"