我有一个看起来像这样的数据框:
ColA ColB ColC ColD
1 Dog Snow Puppy_1
1 Cat Peanut Kitten_1
14 Cat Smokey Cat_9
125 Dog Fido Dog_9
51 Fish Jelly Fish_5
12 Fish Fishy Beta_1
如果ColB
包含ColD
,我想用ColD
的内容替换Puppy
:
ColA ColB ColC ColD
1 Puppy_1 Snow Puppy_1
1 Cat Peanut Kitten_1
14 Cat Smokey Cat_9
125 Dog Fido Dog_9
51 Fish Jelly Fish_5
12 Fish Fishy Beta_1
谢谢!
答案 0 :(得分:2)
一个选项是grep
,用于创建索引并进行分配,以将“ ColB”的值替换为“ ColD”的值
i1 <- grep("Puppy", df1$ColD)
df1$ColB[i1] <- df1$ColD[i1]
或使用data.table
library(data.table)
setDT(df1)[grepl("Puppy", ColD), ColB := ColD][]