¿Cómo soltar la última columna de su R DataFrame?

En este breve tutorial, examinaremos cómo puede usar Base R y la biblioteca dplyr para eliminar la última (o varias n últimas columnas) de su DataFrame.

Comencemos construyendo un R DataFrame simple a partir de múltiples vectores:

#R city <- c ("NYC", "SFO", "LON", "PAR") direct <- c(322, 327, 336, 324) online <- c(191, 126, 196, 140) partners <- c(319, 362, 325, 348) revenue <- data.frame (city = city,  direct = direct, online = online, partners = partners)  #get the DataFrame column names print (names(revenue))

Esto devolverá:

[1] "city"     "direct"   "online"   "partners"

Eliminar la última columna de DataFrame con Base R

Podemos soltar la última columna con cualquiera de estos fragmentos

new_rev <- revenue [1: ncol(revenue)-1 ]

Usando la longitud de DataFrame (que en R cuenta el número de columnas, a diferencia de pandas, que cuenta el número de filas)

revenue <- revenue [1: length(revenue)-1 ]

Usando el nombre de la columna, como se muestra a continuación:

revenue[!names(revenue) %in% 'partners']

Si ahora imprimimos los nombres de las columnas del marco, obtendremos solo tres columnas:

print(names(revenue))  # will return [1] "city"   "direct" "online"

Suelta las últimas columnas con dplyr

Subconjunto de todas las columnas excepto la última por nombre de columna

Podemos usar la función de selección dplyr para seleccionar todas las columnas excepto la última por su nombre. Luego mantenemos el resultado en un nuevo DataFrame llamado new_rev.

library (dplyr) new_rev <- revenue %>% select (-partners)

O, alternativamente, sin usar la notación de tubería (%>%):

library (dplyr) new_rev <-select (revenue, -partners)

Eliminar la columna más a la derecha por índice

De manera similar podemos usar el índice de columna:

library (dplyr) new_rev <- select (revenue, -length(revenue))

Revisemos las columnas en nuestro marco de datos new_rev:

print( names(new_rev))  # this will return [1] "city"   "direct" "online"

Elimine las últimas n columnas de su DataFrame

En este último ejemplo, obtendremos un valor N arbitrario que representa la cantidad de columnas que nos gustaría eliminar. Luego creamos una secuencia y la pasamos a la función de selección:

n = 2 new_rev <- revenue %>% select ( -seq (length(revenue)-n+1 ,length(revenue)) )