Esiste un modo per selezionare tutte le colonne di un frame di dati ad eccezione di una colonna con un nome particolare: sarebbe l'analogo di df[,-1]
, tranne che utilizzando il nome della colonna anziché l'indice?deselezione di una colonna per nome, R
risposta
Si può fare questo usando vettore sottoinsiemi. In primo luogo, creare un set di dati fittizi:
R> dd = data.frame(A = 1:3, B = 1:3, C=1:3, D=1:3)
quindi utilizzare l'operatore !
per invertire la selezione:
R> dd[ ,!(colnames(dd) == "A")]
B C D
1 1 1 1
2 2 2 2
3 3 3 3
In alternativa, si potrebbe avere:
Una versione leggermente più corta (per gentile concessione di @Tomas):
dd[ , names(dd) != "A"]
Per far fronte a più colonne (concessione @Tyler)
dd[ ,!(colnames(dd) %in% c("A", "B"))]
Si potrebbe utilizzare la funzione which()
per identificare la colonna da eliminare.
dd <- data.frame(A = 1:5, B = 1:5, C=1:5)
dd[, -which(names(dd) == "A")]
o positivamente
dd[, which(names(dd) != "A")]
Tuttavia, se non v'è alcuna colonna denominata "A", si otterrebbe un frame di dati con 0 colonne e nrow(dd)
righe. Quindi sarebbe bene verificare l'esistenza di una colonna denominata "A".
if(any(names(dd) == "A")) {
dd[, which(names(dd) != "A")]
}
La funzione subset
consente già questo tipo di sintassi, dagli esempi sulla pagina di aiuto:
subset(airquality, Day == 1, select = -Temp)
Per deselezionando più colonne è possibile utilizzare il pacchetto dplyr. Ad esempio:
dd = data.frame(A = 1:3, B = 1:3, C=1:3, D=1:3)
library(dplyr)
newdd <- select(dd, -A,-C)
questo è un altro modo oltre a quanto suggerito da @csgillespie.
- 1. R - Per un data.frame per nome colonna come CARATTERE
- 2. SQL Server cerca una colonna per nome
- 3. Nome di riga e nomi di colonna in R
- 4. Unire tabelle per nome colonna, convertire stringa in nome colonna
- 5. Mantieni nome colonna quando si seleziona una colonna da un frame dati/matrice in R
- 6. Usando il nome del file per citarne una colonna
- 7. Rimozione di elementi di una lista R nidificato per nome
- 8. È possibile accedere a una colonna DataGrid di Silverlight per nome anziché per indice di colonna?
- 9. Valore di utilizzo R di una variabile come nome colonna del frame di dati
- 10. Passo colonna data.table per nome in funzione
- 11. passando una stringa come nome colonna del frame di dati
- 12. Ottieni valori colonna per nome colonna non indice colonna
- 13. Un modo semplice per generare una colonna del nome slug dalla colonna del nome?
- 14. R: dplyr - Rinomina il nome della colonna per posizione invece del nome
- 15. ambiguo nome di colonna
- 16. R: Definire il nome della colonna con paste()
- 17. Come eliminare una colonna in R dataframe
- 18. ordinare una matrice per colonna multipla in r
- 19. Sottrarre ogni colonna l'uno dall'altro colonna in una R data.table
- 20. annodare attraverso una colonna in R
- 21. Trova una tabella quando conosci il nome di una colonna?
- 22. R convertire data.frame in lista per colonna
- 23. "data" come nome di colonna
- 24. Il nome IsFemale è inappropriato per una colonna del database?
- 25. Listview virtualizzazione e deselezione di tutti gli articoli
- 26. Somma per valore colonna distinto in R
- 27. TSQL: ordine per asc senza nome colonna
- 28. R, passare il nome della colonna come argomento per funzionare utilizzando dplyr :: filter() e% in%
- 29. Nome colonna citazione
- 30. Aggiunta di una colonna a un dataframe in R