Formas de seleccionar múltiples columnas en base R utilizando el operador nativo de tuberías |>: 1. Utilizando la función select() del paquete dplyr: “` library(dplyr) data_frame %>% select(columna1, columna2, columna3) “` 2. Utilizando la función subset(): “` subset(data_frame, select = c(columna1, columna2, columna3)) “` 3. Utilizando la función select_cols(): “` select_cols(data_frame, columna1, columna2, columna3) “` 4. Utilizando la función with(): “` with(data_frame, c(columna1, columna2, columna3)) “` Estas son algunas de las formas en las que puedes seleccionar múltiples columnas en R utilizando el operador de tuberías nativo |>.
¿Cuáles son las buenas formas de seleccionar varias columnas de un marco de datos en R base utilizando el operador nativo |->? (es decir, sin tidyverse/dplyr para reducir las dependencias externas).
Si tenemos el marco de datos
dtf <- data.frame(a = 1:3, b = 4:6, c = 7:9)
entonces podemos seleccionar las columnas b y c con
> dtf[c("b", "c")]
b c
1 4 7
2 5 8
3 6 9
Una forma elegante de hacer esto en tidyverse con el operador nativo es
> dtf |> dplyr::select(b, c)
b c
1 4 7
2 5 8
3 6 9
Mi mejor intento en R base con el operador nativo fue
> dtf |> subset(select = c("b", "c"))
b c
1 4 7
2 5 8
3 6 9
Un intento más conciso (pero fallido) fue
> dtf |> `[`(c("b", "c"))
Error: función '[' no es compatible en la llamada RHS de una tubería
¿Existen mejores formas de hacer esto que me esté perdiendo?
Nota: Si solo quisieras una sola columna y estuvieras bien con convertirla en un vector, entonces se podría usar getElement
:
> dtf |> getElement("b")
[1] 4 5 6
davy.ai
Desafortunadamente, no hay una forma elegante de seleccionar varias columnas de un marco de datos en R base utilizando el operador nativo de tuberías
|>
sin introducir dependencias adicionales. La funciónsubset
es una opción decente, pero requiere el uso del argumentoselect
, lo cual puede ser engorroso en algunos casos. Otra forma es utilizar el método de indexación mostrado anteriormente. Sin embargo, este enfoque solo funciona si quieres seleccionar columnas no consecutivas y puede volverse complicado rápidamente con marcos de datos más grandes. En general, la funcióndplyr::select
es la forma más concisa y expresiva de seleccionar columnas de un marco de datos utilizando el operador nativo de tuberías|>
en R.