2011-12-15 4 views
2

I持って、次のRのデータフレームのmydataというgrepは、行全体を削除するには

     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';) –

+0

@ JoshO'Brien:doh! –

2

か試してください:あなたは、さらに操作を行いたい場合

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

は、もう少し柔軟性がございます。

+0

サブセットとしての+1は、対話形式でのみ使用されることを意味します。 –

+1

なぜあなたは 'を'必要としますか? 'mydata [mydata $ city!=" "、]'もうまくいきませんか? –

+0

'mydata $ city!=" "'のような論理的な文は '' logical'クラスのオブジェクトを返します。その配列内の 'TRUE'に等しいインデックスを決定するために' which'関数が必要です。 – oeo4b

関連する問題