【问题标题】:remove returns in excel read in删除读取的excel中的返回
【发布时间】:2022-01-02 08:01:40
【问题描述】:

我正在读取几个 excel 文件并将它们合并到一个数据框中。一些地址字段中有返回值。我想出了这个来删除它们,但它不起作用,并且 RStudio 说该行中有无效的令牌。

df$Primary.Street <- gsub("\r\n", " ", df$Primary.Street)

任何帮助将不胜感激。

输入行在 Excel 中的外观示例:

            "123 Main St
"Sam Jones"  Apt A"      "New York" "NY" "12345"

希望输出到 csv:

"Sam Jones","123 Main St Apt A","New York","NY","12345"

【问题讨论】:

  • 你能分享一下它在 R 中的样子吗? dput(df[row_that_has_problem, relevant_columns]) 将是完美的,因为它将包含所有类和结构信息。
  • 首先,确保换行符确实是df$Primary.Street 的一部分,然后使用df$Primary.Street &lt;- gsub("(*UCP)\\R+", " ", df$Primary.Street, perl=TRUE)

标签: r excel regex dataframe


【解决方案1】:

将你的回车字符放在方括号中以创建一个字符类,它将匹配该类中的任何字符:

> samp <- "120 Main st\nApt A"

> gsub("[\r\n]+", " ", samp)

[1] "120 Main st Apt A"

您的不带括号的示例只会依次匹配\r\n。我的示例将匹配其中一个或多个的任何序列(通过+ 量词)。

【讨论】:

  • 我明天去试试。对于没有\r\n 的行,我将把它包装在ifelse 中。
  • 没有它的行不会改变,ifelse 不是绝对必要的。
  • 我当时想多了。当我发布这个问题时,我正在查找多个函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-12
  • 2017-08-29
  • 1970-01-01
  • 2022-12-13
相关资源
最近更新 更多