如何解决替换不符合条件的数据框中的矢量数据
我有一个数据框:
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(第一列)中,我想用 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
1 Bldg 5A
2 <NA>
3 Bldg 10B
4 <NA>
数据:
df <- data.frame(
Bldg = c("Bldg 5A",NA,"Bldg 10B","Someothertext")
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。