2011-11-23 14 views
12

Powiel możliwe:
removing specific rows from a dataframeUsuń konkretne wiersze z ramki danych

Powiedzmy mam ramkę danych składającą się z wielu wierszy, na przykład:

X <- data.frame(Variable1=c(11,14,12,15),Variable2=c(2,3,1,4)) 

Variable1 Variable2 
11   2 
14   3 
12   1 
15   4 

Załóżmy teraz, że chcę utworzyć nową ramkę danych, która jest duplikatem tego, tylko że usuwam ll wiersze, w których zmienna1 ma określoną wartość liczbową. Powiedzmy, że mamy te numery przechowywane w wektorze v

Oznacza to, że jeżeli v zawiera numery 11 i 12, nowa ramka danych powinien wyglądać następująco:.

Variable1 Variable2 
14   3 
15   4 

Szukałam sieć od jakiegoś czasu próbuje dowiedzieć się, jak to zrobić. Głównie potrzebowałbym jakiegoś polecenia mówiącego: removeRow(dataframe, row) lub coś w tym stylu.

+9

Czy szukałeś SO w związku z tym pytaniem? Odpowiedź z pewnością wymaga użycia% w% i operatora ekstrakcji "[" ale ja określę, czy już otrzymał odpowiedź. Na przykład pierwszy, który wyszukuje za pomocą twojego pytania: http://stackoverflow.com/questions/7112872/removing-specific-rows-from-a-dataframe –

+4

Jest to dość powszechna praktyka R. Oto podpowiedź, zamiast próbować usunąć wiersze, których nie chcesz, spróbuj zrobić nową ramkę danych zawierającą wiersze, które chcesz. – Chris

+0

Powinieneś opublikować odtwarzalny przykład. 'dput' jest twoim przyjacielem! – Zach

Odpowiedz

40
X <- data.frame(Variable1=c(11,14,12,15),Variable2=c(2,3,1,4)) 
> X 
    Variable1 Variable2 
1  11   2 
2  14   3 
3  12   1 
4  15   4 
> X[X$Variable1!=11 & X$Variable1!=12, ] 
    Variable1 Variable2 
2  14   3 
4  15   4 
> X[ ! X$Variable1 %in% c(11,12), ] 
    Variable1 Variable2 
2  14   3 
4  15   4 

Możesz to jakkolwiek funkcjonalizować.

Powiązane problemy