¿Hay alguna manera de seleccionar todas las columnas de un marco de datos excepto una columna que tenga un nombre particular: sería el análogo de df[,-1]
, excepto que use el nombre de columna en lugar del índice?anulando la selección de una columna por nombre, R
Respuesta
Puede hacerlo utilizando subconjuntos vectoriales. En primer lugar, crear un conjunto de datos ficticios:
R> dd = data.frame(A = 1:3, B = 1:3, C=1:3, D=1:3)
A continuación, utilice el operador !
para revertir la selección:
R> dd[ ,!(colnames(dd) == "A")]
B C D
1 1 1 1
2 2 2 2
3 3 3 3
Alternativamente, usted podría tener:
Una versión ligeramente más corto (cortesía de @Tomas):
dd[ , names(dd) != "A"]
Para hacer frente a múltiples columnas (cortesía de @Tyler)
dd[ ,!(colnames(dd) %in% c("A", "B"))]
Se podría utilizar la función which()
para identificar la columna que ser eliminado.
dd <- data.frame(A = 1:5, B = 1:5, C=1:5)
dd[, -which(names(dd) == "A")]
o positivamente
dd[, which(names(dd) != "A")]
Sin embargo, si no hay una columna llamada "A", se llega a una trama de datos con 0 columnas y filas nrow(dd)
. Por lo tanto, sería bueno verificar la existencia de una columna llamada "A".
if(any(names(dd) == "A")) {
dd[, which(names(dd) != "A")]
}
La función subset
ya se permite este tipo de sintaxis, a partir de los ejemplos en la página de ayuda:
subset(airquality, Day == 1, select = -Temp)
Para anular la selección de múltiples columnas se puede utilizar el paquete de dplyr. Como un ejemplo:
dd = data.frame(A = 1:3, B = 1:3, C=1:3, D=1:3)
library(dplyr)
newdd <- select(dd, -A,-C)
esta es otra manera además de lo que sugirió @csgillespie.
- 1. Anulando la selección de ComboBoxItems en MVVM
- 2. Oracle: nombre de columna dinámica en la instrucción de selección
- 3. MySQL - Selección de una columna no en Agrupar por
- 4. columnas cambio de nombre en una instrucción de selección MySQL con RJDBC paquete R
- 5. Cómo crear una columna ID en R
- 6. Solicitar una matriz por múltiples columna en r
- 7. Búsqueda de SQL Server para una columna por nombre
- 8. Selección de columna calculada por SQL Server de otra tabla
- 9. selección de datos y la suma de una columna para una columna distinta en los datos
- 10. ¿cómo almaceno la columna de selección en una variable?
- 11. ¿Cómo ordenar por apellido en una columna de nombre completo?
- 12. Anulando la función nativa?
- 13. Selección de la primera fila por grupo
- 14. Anulando la selección de la fila de la vista de tabla al devolver
- 15. Cómo crear una nueva columna en una consulta de selección
- 16. R - Para un hoja.de.datos por nombre de columna como el carácter
- 17. nombre de la columna ambiguo
- 18. Cómo importar datos de Excel a R usando el nombre de la columna y el nombre de la fila
- 19. En R, ¿por qué la selección de filas de un marco de datos devuelve datos como un vector si el marco de datos tiene solo una columna?
- 20. Asignar una columna de un data.frame con nombre de cadena en R
- 21. función en R, pasando una trama de datos y un nombre de columna
- 22. Cómo Obtener datos por SqlDataReader.GetValue por nombre de columna
- 23. R número de caracteres columna
- 24. Anulando un método llamado por el constructor de una clase
- 25. Sumar por valor de columna distinto en R
- 26. Navegador cruzado Selección de elementos por nombre de clase
- 27. Objective-C sintetizar el nombre de propiedad anulando
- 28. nombre de columna como parámetro de la función en el lenguaje R
- 29. Número de columna de Excel del nombre de la columna
- 30. # 1060 - Duplicar nombre de la columna 'id'