R 替换不包含';不符合标准
我有一个数据框:R 替换不包含';不符合标准,r,replace,gsub,grepl,R,Replace,Gsub,Grepl,我有一个数据框: 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 vaca
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
我们可以使用
grepl
和否定:
df$Bldg[!grepl("\\bBldg\\b", df$Bldg)] <- NA
df$Bldg[!grepl(\\bBldg\\b“,df$Bldg)]到目前为止,您尝试了什么?您是否正在寻找类似的东西:df[!grepl(“Bldg”,df$Bldg),“Bldg”]您还可以将stringr::stru_detect
与ifelse
df
Bldg
1 Bldg 5A
2 <NA>
3 Bldg 10B
4 <NA>
df <- data.frame(
Bldg = c("Bldg 5A", NA, "Bldg 10B", "Someothertext")
)