我正在使用trimws(x)修剪数据集中的空白。
就像在excel中“查找并替换”的输出一样,我想知道修剪器做了多少工作;具体来说,是从整个数据帧中删除了多少空白-主要是为了我的满意,但也有可能进一步将triws所做的工作与其他变量进行分组,以查看上游是否有任何模式蔓延到空白。< / p>
示例:
x <- " Some text. "
trimws(x)
然后是一些输出,例如:
# trimws removed 1708 white space characters and 13 new line characters
答案 0 :(得分:1)
这是删除的空白字符的数量:
x <- " Some text. "
nchar(x) - nchar(trimws(x)) # no of whitespace characters removed
## [1] 4
示例中唯一的空格是空格,但是大概只有换行符,return和tab出现在修剪的部分中,因此,如果这些空格也是可能的,那么这给出了删除的空格数:
xx <- gsub("[\n\r\t]", "", x)
nchar(xx) - nchar(trimws(xx)) # no of spaces removed
和上面给出的第一个代码段之间的区别是删除的非空格数。
答案 1 :(得分:0)
根据您的示例,您可以修改trimws()
(可用的here)的当前代码。
您只需要将sub()
更改为grep()
,以计算在space
中发现了多少x
个字符。
my_trimws = function(x, which = c("both", "left", "right")) {
which = match.arg(which)
mysub = function(re, x) grep(re, x, perl = TRUE)
if (which == "left")
n <- mysub("^[ \t\r\n]+", x)
if (which == "right")
n <- mysub("[ \t\r\n]+$", x)
n <- sum(mysub("^[ \t\r\n]+", x), mysub("[ \t\r\n]+$", x))
cat("trimws() removed ", n, " spaces\n") # prints to the console
return(n)
}
您的示例:
x <- " Some text. "
r <- my_trimws(x)
#trimws() removed 2 spaces
# r
# [1] 2