在 R 中,如何根据数据帧每行的条件更改字符串的值

Nic*_*ams 5 replace r

我有一个数据框:

a = c(2, 3, 5, 4) 
b = as.character(c("dogs are loving", "cats are the best", "we prefer cats", "dogs are sweet"))
df = data.frame(a, b)
print(df)

 a         b
 2   dogs are loving
 3   cats are the best
 5   we prefer cats
 4   dogs are sweet
Run Code Online (Sandbox Code Playgroud)

我想更改 df$b 使其变为:

 a     b
 2   dogs are loving
 3   cats
 5   cats
 4   dogs are sweet
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用 grepl 来查明字符单元格是否包含单词 cats...

grepl("cats", df$b, ignore.case=TRUE)
Run Code Online (Sandbox Code Playgroud)

...但我不知道如何使用它来将字符单元格更改为“猫”。

Tim*_*sen 4

试试这个代码:

df$b <- as.character(df$b)
df$b[grepl('cats', df$b)] <- 'cats'
Run Code Online (Sandbox Code Playgroud)