【问题标题】:How to replace multiple strings with the same in R如何在R中用相同的字符串替换多个字符串
【发布时间】:2015-04-01 20:32:36
【问题描述】:

我有一个字符串

vec = c('blue','red','flower','bee')

我想在一行中将不同的字符串转换成相同的字符串,而不是分开 即我可以 gsub blue 和 gsub red 使它们都拼写“颜色”。我怎样才能在一行中做到这一点?

输出应该是: '颜色','颜色','花','蜜蜂'

【问题讨论】:

    标签: r string replace gsub


    【解决方案1】:
    sub("blue|red", "colour", vec)
    

    使用“|” (这意味着您要替换的单词之间的逻辑OR 运算符)。

    使用sub 仅更改第一次出现,使用gsub 更改同一字符串中的多次出现。

    在 R 控制台中输入 ?gsub 以获取更多信息。

    【讨论】:

    • 如果我的实际字符串由短语组成,这会起作用吗?
    • 是的。试试sentence <- c("my favourite color is blue, red is what i dont like", "flowers are great") 看看subgsub 之间的区别
    【解决方案2】:

    这里不需要指定要替换的颜色,它将替换R知道的任何颜色(由colors()返回)

    > col <- paste0(colors(), collapse = "|")
    > gsub(col, "colour", vec)
    [1] "colour" "colour" "flower"  "bee" 
    

    另外,正如 cmets 中所建议的那样(显然只有当元素是颜色时才会起作用,所以 gsub 方法似乎更适合您的目的):

    > vec[vec %in% colors()] <- "coulour"
    > vec
    [1] "coulour" "coulour" "flower"  "bee" 
    

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      相关资源
      最近更新 更多