2011-12-08 6 views
1

firstという名前の列に "+"が含まれているmydataという名前のデータフレームからすべての行を削除したいとします。 Rのこれに対する正しいコマンドは何ですか?特定の列の記号を含むdata.frameから行を削除する方法

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

答えて

10

はgrep:ここ

は私のデータフレームのように見えるものです! 2列目であなたを占い

[1] 2 3 

返し

mydata <- read.table(textConnection("session first last city 
9cf571c8faa67cad2aa9ff41f3a26e38 cat biddix fresno 
e30f853d4e54604fd62858badb68113a caleb+joey amos blah 
63a5e839510a647c1ff3b8aed684c2a5 me+you amos blah"), header=T, stringsAsFactors=FALSE) 

grep("\\+",mydata$first) 

は、行2及び3は、それらの中に '+' を持っています。

だから、実行することができます:

mydata <- mydata[-grep("\\+",mydata$first),] 
mydata 
をそして、それらの全体の行が削除されます。あなたの質問のタイプミスであるかどうかは分かりませんが、「最初の列の行を削除する」と言う場合は、エントリまたは行全体を意味しますか?

+0

"2列目に伝えると、3行目と4行目に '+'が表示されます。 - それは '2'と' 3'行ではありませんか? – Tommy

+0

はい、Tommyと 'grep!' –

+1

Yup、最初に投稿した後に 'header = T'に追加されましたが、これはインデックス作成にぶつかりました。今修正しました、イーグルアイのおかげで^ _ ^ – nzcoops

関連する問題