返回从数据框架中修剪了多少trimw



我正在使用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

最新更新