我有一个数据框:
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)
...但我不知道如何使用它来将字符单元格更改为“猫”。
试试这个代码:
df$b <- as.character(df$b)
df$b[grepl('cats', df$b)] <- 'cats'
Run Code Online (Sandbox Code Playgroud)