【发布时间】:2021-04-06 14:24:31
【问题描述】:
我有一个数据框:
Bldg Bldg-Room Expt. #
Bldg 5A NA NA
NA 5A-141 vacant
Reynolds 5A-142 S00168
NA NA S00168
NA NA S00168
NA NA S00756
Reynolds 5A-143 S00168
NA NA S00756
NA NA S00168
NA NA S00168
NA 5A-144 vacant
NA 5A-145 vacant
Reynolds 5A-146 7590.21
NA 5A-147 vacant
Reynolds 5A-148 7712.01
NA NA 7712.01
NA NA 7712.01
Lewis 5A-149 occupied
Lewis 5A-150 occupied
在 df$Bldg(第 1 列)中,我想用 NA 替换任何不包含“Bldg*”的文本字符串
我尝试过 grep、grepl 和 gsub,但不确定我输入的参数是否正确。
期望的输出是:
Bldg Bldg-Room Expt. #
Bldg 5A NA NA
NA 5A-141 vacant
NA 5A-142 S00168
NA NA S00168
NA NA S00168
NA NA S00756
NA 5A-143 S00168
NA NA S00756
NA NA S00168
NA NA S00168
NA 5A-144 vacant
NA 5A-145 vacant
NA 5A-146 7590.21
NA 5A-147 vacant
NA 5A-148 7712.01
NA NA 7712.01
NA NA 7712.01
NA 5A-149 occupied
NA 5A-150 occupied
【问题讨论】:
-
到目前为止你尝试过什么?你在寻找类似的东西:
df[!grepl("Bldg", df$Bldg), "Bldg"] <- NA? -
您也可以将
stringr::str_detect与ifelse结合使用