Использование grep в R для удаления строк из data.frame

У меня есть кадр данных, такой как этот:

    d <- data.frame(cbind(x=1, y=1:10,    z=c("apple","pear","banana","A","B","C","D","E","F","G")), stringsAsFactors = FALSE)

Я хотел бы удалить некоторые строки из этого фрейма данных, в зависимости от содержимого столбца z:

    new_d <- d[-grep("D",d$z),]

Это отлично работает; строка 7 теперь удалена:

    new_d
     x  y      z
  1  1  1  apple
  2  1  2   pear
  3  1  3 banana
  4  1  4      A
  5  1  5      B
  6  1  6      C
  8  1  8      E
  9  1  9      F
  10 1 10      G

Однако, когда я использую grep для поиска содержимого, которого нет в столбце z, кажется, что он удаляет все содержимое фрейма данных :

    new_d <- d[-grep("K",d$z),]
    new_d
    [1] x y z
    <0 rows> (or 0-length row.names)

. Я хотел бы искать и удалять строки тем или иным способом, даже если строка символов, которую я ищу, отсутствует. Как это сделать?

11
задан Brian Tompsett - 汤莱恩 23 August 2015 в 10:27
поделиться