2011-11-23 20 views
12

Duplicar posible:
removing specific rows from a dataframeEliminar filas específicas de una trama de datos

Digamos que tengo una trama de datos que consiste en una serie de filas, como esto:

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 

Ahora, digamos que quiero crear un nuevo marco de datos que sea un duplicado de este, solo que estoy eliminando un ll filas en las que Variable1 tiene un cierto valor numérico. Digamos que tenemos estos números almacenados en un vector, v

Es decir, si v contiene los números 11 y 12, la nueva trama de datos debe tener este aspecto:.

Variable1 Variable2 
14   3 
15   4 

He estado buscando la red desde hace bastante tiempo tratando de descubrir cómo hacer algo como esto. Principalmente, solo necesitaría algún tipo de comando diciendo removeRow(dataframe, row) o algo así.

+9

¿Ha buscado SO para esta pregunta? La respuesta seguramente implica el uso de% en% y el operador de extracción "[", pero voy a establecer probabilidades ya ha sido respondida. Por ejemplo, el primero que aparece con una búsqueda usando el título de su pregunta: http://stackoverflow.com/questions/7112872/removing-specific-rows-from-a-dataframe –

+4

Esta es una práctica R bastante común. Aquí hay una pista, en lugar de tratar de eliminar las filas que no desea, intente crear un nuevo marco de datos que contenga las filas que desea. – Chris

+0

Debe publicar un ejemplo reproducible. 'dput' es tu amigo! – Zach

Respuesta

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 

Puede funcionalizar esto como desee.

Cuestiones relacionadas