如何在r中根据'this'条件粘贴字符串?

How to paste character string based on 'this' condition in r?

我有这个数据框df

df

 col1                          col2 
Engraulis encrasicolus        Engraulis encrasicolus 
Sardina pilchardus            Sardina pilchardus
Scomber spp                   Scomber
Spicara                       Spicara


class(df)
"factor"

我想在 col2 中每次出现 col1 时粘贴字母 'spp' 例如:

       col1                          col2 
Engraulis encrasicolus        Engraulis encrasicolus 
Sardina pilchardus            Sardina pilchardus
Scomber spp                   Scomber spp
Spicara                       Spicara

我试过:

df.res <- ifelse(df$col1 %like% "spp"==T,
       paste("spp",collapse=NULL) %in% df$col2,df$col1)

但结果是一个类似的数据框 df,字符串和值逻辑为 FALSE:

df.res                  
"Engraulis encrasicolus"        
"Sardina pilchardus"         
"FALSE"                
"Spicara"       

使用基础 R:

df.res <- ifelse(grepl("spp", df$col1),
                 paste0(df$col2, " spp"), df$col2)

或作为原始数据框中的附加列:

df$col3 <- ifelse(grepl("spp", df$col1),
                  paste0(df$col2, " spp"), df$col2)