En primer lugar, cabe destacar que un matrix
y una data.frame
son cosas diferentes en R. imagina que tienes un data.frame
(ya que es lo que devuelve read.csv()
). data.frame
tienen columnas con nombre (si no las das, las genéricas se crean para ti).
Puede subconjuntar un data.frame
indicando qué filas desea y/o qué columnas desea. La forma más fácil de especificar qué filas es con un vector lógico, a menudo creado a partir de comparaciones usando columnas específicas del data.frame
. Por ejemplo data[["column values"]] == "15"
haría un vector lógico que es TRUE
si la entrada correspondiente en la columna column values
es la cadena "15" (ya que está entre comillas, es una cadena, no un número). Puede hacer los criterios de selección más complicados que desee (combinando vectores lógicos con &
y |
) para especificar las filas que desea. Este vector se convierte en el primer argumento en la indexación.
Una lista de nombres o números de columna puede ser el segundo argumento. Si falta alguno de los argumentos, se suponen todas las filas (o columnas).
Poniendo todo esto junto, se obtiene ejemplos como
data[data[["column values"]] == "15", ]
o el uso de un conjunto de datos reales (mtcars
)
mtcars[mtcars$am == 1, ]
mtcars[mtcars$am == 1 & mtcars$hp > 100, "mpg"]
mtcars[mtcars$am == 1 & mtcars$hp > 100, "mpg", drop=FALSE]
mtcars[mtcars$hp > 100, c("mpg", "carb")]
Tome un vistazo a lo que cada uno de los condicionales (primeros argumentos, por ejemplo, mtcars$am == 1 & mtcars$hp > 100
) return para tener una mejor idea de cómo funciona la indexación.
gracias por la respuesta. En realidad, quiero recuperar todo el subconjunto, me refiero también a otras columnas. puede por favor mostrarme cómo puedo obtener el resultado 2 Prod B; 2 ProdC; 2 ProdC de nuevo? En mi caso, quiero filtrar en más de una columna como Jack mostró. Pero todavía no está funcionando. ¿Puedes ver el error? ¡Gracias! – Bob
Publicado una edición. Puede especificar cualquier combinación de factores en un vector de nombres de columnas entre comillas o sin comillas. 'subset' también va a omitir todas las molestas coincidencias de NA que odio y que otras personas aprecian. –
Intenté subconjunto (datos, V1 == "estocástico", V6 == "independiente"). Pero no está funcionando. V1 y V6 son dos encabezados de columna. El resultado es> subconjunto (datos, V1 == "estocástico", V6 == "independiente") marco de datos con 0 columnas y 196 filas ¿Por qué no obtengo todos los datos en su forma inicial pero solo las filas? donde v1 y v6 están satisfechos? – Bob