Grep в R, чтобы удалить всю строку, если ячейка столбца города пуста - PullRequest
2 голосов
/ 16 декабря 2011

У меня есть следующий R dataframe mydata

                       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

Какова правильная строка кода, чтобы удалить все те строки, где город пуст?

Ответы [ 2 ]

7 голосов
/ 16 декабря 2011

Может быть

subset(mydata,city!="")

?Это предполагает, что столбец city хранится таким образом, что пробелы являются строками нулевой длины.Если они могут быть пробелами, то что-то вроде

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

найдет нужные вам элементы.Поскольку grepl не имеет аргумента invert, который вы можете использовать ( edit : благодаря @ JoshO'Brien)

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

(Воспроизводимый пример не приводится, поэтому ни один изэто проверено.)

2 голосов
/ 16 декабря 2011

Или попробуйте:

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

Может быть немного более гибким, если вы хотите делать дальнейшие манипуляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...