【问题标题】:finding second space and remove in R找到第二个空间并在 R 中删除
【发布时间】:2021-11-25 02:41:42
【问题描述】:

我想在 R 中使用 tidyverse 删除多个名称的第二个空格(在 sp. 之后)

我的例子:

df <- data.frame(x = c("Araceae sp. 22", "Arecaceae sp. 02"))

我想要的输出

x
Araceae sp.22
Arecaceae sp.02

请给我一些建议好吗?

【问题讨论】:

  • 你认为这是第二个空格还是sp.之后的空格?
  • sr 我的问题不清楚,sp. 后面的空格。我想这也是第二个空间吧?
  • sub("sp. ", "sp.", df$x) 没有sp. 您可能还有第二个空格@ 是否也应该删除?

标签: r string tidyverse


【解决方案1】:

我们可以使用sub 来捕获一个或多个不是空格的字符,后跟空格 (\\s+) 和另一组不是空格的字符,并替换为捕获组的反向引用

df$x <- sub("^(\\S+\\s+\\S+)\\s+", "\\1", df$x)
df$x
[1] "Araceae sp.22"   "Arecaceae sp.02"

或者我们可以使用str_replace

library(dplyr)
library(stringr)
df %>%
    mutate(x = str_replace(x, "^(\\S+\\s+\\S+)\\s+", "\\1"))

【讨论】:

  • tidyverse 是否像sub 函数现在在这里帮我解决这个问题?
  • @Anh 你可以在更新后使用str_replace
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-26
  • 2016-11-09
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
相关资源
最近更新 更多