category.1 <- c("TM","TM","CPA","TM","CPC")
category.2 <- c("LS","LS","DSP","DSP","AF")
platform <- c("facebook","facebook","yahoo","google","google")

dat <- data.frame(platform,category.1,category.2)
dat
  platform category.1 category.2
1 facebook         TM         LS
2 facebook         TM         LS
3    yahoo        CPA        DSP
4   google         TM        DSP
5   google        CPC         AF


当category.1是'TM'和category.2'LS'时,我想将'LS'替换为'LS1'

      platform category.1 category.2
    1 facebook         TM         LS1
    2 facebook         TM         LS1
    3    yahoo        CPA        DSP
    4   google         TM        DSP
    5   google        CPC         AF


我尝试过这种方式,它的返回错误。

 dat$category.1[dat$category.1=='TM'& dat$category.2=='LS',] <- 'LS1'


感谢您的阅读。

最佳答案

另一种方法;使用dplyrifelse基本函数。

> library(dplyr)
> dat <-
    dat %>%
    mutate(category.2 = ifelse(category.1 == "TM" & category.2 == "LS",
           "LS1",
           as.character(category.2)))


> dat
  platform category.1 category.2
1 facebook         TM        LS1
2 facebook         TM        LS1
3    yahoo        CPA        DSP
4   google         TM        DSP
5   google        CPC         AF

关于r - 如何替换数据框中的特定单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29095101/

10-12 00:37
查看更多