我正在使用trimws(x(从数据集中修剪白色空间。
喜欢Excel中"查找和替换"的输出,我想知道Trimws完成了多少工作;具体而言,从整个数据框架中删除了多少空白 - 主要是为了满足我的满意,但也有可能进一步将Trimws通过其他变量所做的工作进行分组,以查看在上游中的白空间是否存在任何模式。<<<<<<<<<<<<<<<。/p>
示例:
x <- " Some text. "
trimws(x)
然后一些输出,例如:
# trimws removed 1708 white space characters and 13 new line characters
这是被删除的空格字符的数量:
x <- " Some text. "
nchar(x) - nchar(trimws(x)) # no of whitespace characters removed
## [1] 4
该示例中唯一的空格是空间,但大概是纽线,返回和选项卡的唯一出现在修剪部分中,因此,如果可以使用这些空间,则可以将其删除的空间数量:
xx <- gsub("[nrt]", "", x)
nchar(xx) - nchar(trimws(xx)) # no of spaces removed
以及上面给出的第一个代码段之间的区别是已删除的非空间数量。
基于您的示例,您可以修改trimws()
的当前代码(在此处可用(。
您只需要使用grep()
更改sub()
,以计算x
中发现多少个space
char。
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("^[ trn]+", x)
if (which == "right")
n <- mysub("[ trn]+$", x)
n <- sum(mysub("^[ trn]+", x), mysub("[ trn]+$", x))
cat("trimws() removed ", n, " spacesn") # prints to the console
return(n)
}
您的示例:
x <- " Some text. "
r <- my_trimws(x)
#trimws() removed 2 spaces
# r
# [1] 2