如何在R中经过过滤的数据框中用字符串替换空格?

时间:2018-09-07 19:36:17

标签: r dplyr stringr

在R中,我试图根据另一列中的字符串模式替换一列中的空白值。

以下是数据框(df)的外观:

 df
 qual   bdl
 U      <
 UJ   
 J
 U-     <
 UU     
 NA   
 U      <

这是我希望数据框看起来像的样子:

 df
 qual   bdl
 U      <
 UJ     <
 J
 U-     <
 UU     <
 NA   
 U      <

对于df$qual中包含“ U”的每一行,我希望df$bdl包含“ <”。
使用stringr包,我尝试了以下代码:

data$bdl <- ifelse(str_detect(data$qual, "U") & data$bdl != "<", "<", data$bdl)

但是我最终在整个列df$bdl中获得了NAs

我不确定如何解决此问题。

1 个答案:

答案 0 :(得分:0)

使用grepl

df_1$bdl[grepl("U", df_1$qual)]="<"

输出:

    qual bdl
1    U   <
2   UJ   <
3  <NA>   <
4    J    
5   U-   <
6   UU   <
7  <NA>    
8    U   <