Ваша логика немного не в порядке:
!is.na(crimeData$Weapon.Description)
дает вам строки, где содержимое не NA
crimeData$Weapon.Description=="")
дает вам строки, где содержимое являетсяпустая строка !(...&...)
отрицает ее, поэтому вы запрашиваете все строки, которые "не (не-NA и пустые)"
Возможно, вы хотите "нет (нет данных)или пустой)Один из них должен работать:
crimeData[ !crimeData$Weapon.Description %in% c("", NA), ]
crimeData[ !is.na(crimeData$Weapon.Description) & crimeData$Weapon.Description != "", ]
crimeData[ !( is.na(crimeData$Weapon.Description) | crimeData$Weapon.Description == ""), ]
crimeData[ !is.na(crimeData$Weapon.Description) & nzchar(crimeData$Weapon.Description), ]
Не уверен, что это фактор, но это не поймает «только 1+ пробелов».Если это так, вы можете сначала сделать
crimeData$Weapon.Description <- trimws(crimeData$Weapon.Description)