如何删除R数据帧中的“奇怪空间”?

时间:2019-09-01 01:04:11

标签: r

我将数据从Excel文件导入R。此文件包含R和Excel均未检测到的一些奇怪空间。我所说的“奇怪的空间”是某种形式的双倍空格,但是当我在Excel中执行Ctrl + F并使用键盘上的空格键搜索双倍空格时,Excel无法检测到它。我从这篇文章中找到了关于这个奇怪空间的更多信息:

https://www.auditexcel.co.za/blog/excel-not-recognizing-spaces/

那么对我来说,问题是如何在R中用适当的单个空格替换这个双空格?

我尝试了以下操作,但不起作用:

table$var1 <- gsub(" +"," ",table$var1)
table$var1 <- gsub("  "," ",table$var1)
table$var1 <- sub("  "," ",table$var1)

我想这是可以预测的,因为它可能不是两倍的空格,而是看起来像一个。

有人遇到过这样的事情吗?我希望能像作者在上面的URL中所说的那样手动修复Excel文件,但是在这种情况下,我需要修复数百个Excel文件:(

2 个答案:

答案 0 :(得分:1)

如何在trimws()中使用修剪空白:

x <- "  Some text. "
x <- trimws(x)
x
[1] "Some text."

然后在其中添加一个空格

x <- paste0(" ", x)
x
[1] " Some text."

在您的情况下:

table$var1  <- trimws(table$var1)
table$var1  <- paste0(" ", table$var1)

答案 1 :(得分:-1)

猜猜是什么?!我从这篇文章的结尾找到了答案: Where is this whitespace hiding?

@uneven_mark您给了我正确的方向。使用上述论坛中的帖子,这就是我所做的:

trim <- function(x) gsub("^\\s+|\\s+$", "", x)
clean <- function(text) {
  gsub("\\s+", " ", gsub("\r|\n|\t", " ", text))
}

trim(clean(table1$var1))

非常感谢你们:)