【问题标题】:Replace substring with nothing将子字符串替换为空
【发布时间】:2012-11-26 17:48:14
【问题描述】:

如何将所有以 _ 开头的内容替换为空?

这是一个简单的数据框

d <- data.frame(a = c("A_foo1", "B_foo2", " _foo3"))

我希望 d 看起来像:

a
A
B
" "

【问题讨论】:

  • 你有什么尝试吗?这很容易用gsub...
  • 我不知道 gsub。我目前正在尝试替换、grep 和 substr。现在将研究 gsub
  • ?grep 应该为您提供各种字符串/正则表达式命令的信息。

标签: r regex


【解决方案1】:
a <- c("A_foo1", "B_foo2", " _foo3")
gsub("_.*", "", a)
#[1] "A" "B" " "

【讨论】:

  • 如果您的字符串有一些额外的复杂性,您可以更加明确并使用正则表达式的分组功能:gsub('^(.*)_.*$', '\\1', a)
  • 你能想到输出会不同的情况吗?默认情况下,正则表达式是贪婪的,这就是我选择答案的原因。
  • 不是真的,这就是我删除答案的原因。我只是想尽可能明确,一旦我注意到我没有预料到的行为,就会倒退而不是反过来。
猜你喜欢
  • 2014-11-12
  • 1970-01-01
  • 2012-08-09
  • 2017-04-24
  • 1970-01-01
  • 2020-12-19
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多