如何在r中基于'this'条件粘贴字符串?

时间:2018-11-14 10:40:40

标签: r dataframe paste

我有这个数据框df

df

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


class(df)
"factor"

我想将col2中出现的每次字母'spp'粘贴到col1中 例如:

       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"       

1 个答案:

答案 0 :(得分:1)

使用基本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)