2011-12-15 59 views
2

我有下列R-数据帧MYDATAgrep的R中删除整行,如果城市列单元格为空

     session  first  last   city 
1 9cf571c8faa67cad2aa9ff41f3a26e38 cat+rat biddix   fresno 
2 e30f853d4e54604fd62858badb68113a  caleb  amos     
3 2ad41134cc285bcc06892fd68a471cd7 daniel+joe folkers     
4 2ad41134cc285bcc06892fd68a471cd7 daniel+joe folkers     
5 63a5e839510a647c1ff3b8aed684c2a5 charles pierce   flint 
6 691df47f2df12f14f000f9a17d1cc40e   j franz prescott+valley 
7 691df47f2df12f14f000f9a17d1cc40e   j franz prescott+valley 
8 b3a1476aa37ae4b799495256324a8d3d carr%ie% mascorro   brea 
9 bd9f1404b313415e7e7b8769376d2705  fred morales  las+vegas 
10 b50a610292803dc302f24ae507ea853a  aurora  lee     
11 fb74940e6feb0dc61a1b4d09fcbbcb37  andrew price  yorkville 

什么是代码正确的行删除所有这些行,其中城市为空白?

回答

7

也许

subset(mydata,city!="") 

?这假设city列的存储方式是空格是零长度的字符串。如果它们可能是空格,那么像

grep("^[[:space:]]*$",mydata$city,invert=TRUE) 

会找到你想要的元素。由于grepl没有一个invert参数,你可以使用(编辑:感谢@ JoshO'Brien)

subset(mydata,!grepl("^[[:space:]]*$",city)) 

(不重复的例子给出,所以没有这些测试。)

+2

`!grepl()`是一个很不错的临时`invert`;) – 2011-12-15 23:46:53

+0

@ JoshO'Brien:doh! – 2011-12-15 23:52:12

2

或者请尝试:

mydata[which(mydata$city!=""),] 

如果您想进一步操作,可能会更灵活一些。

相关问题