vacio - ¿Cómo combinar dos columnas en R con un símbolo específico?
tablas en r (2)
Tengo una tabla leída en R de la siguiente manera:
column1 column2
A B
¿Cuál es el comando que se utilizará para unir dos columnas juntas de la siguiente manera?
Column 3
A_B
Estoy un poco inseguro de lo que quieres decir con "fusión", pero ¿es esto lo que quieres decir?
> DF = data.frame(A = LETTERS[1:10], B = LETTERS[11:20])
> DF$C = paste(DF$A, DF$B, sep="_")
> head(DF)
A B C
1 A K A_K
2 B L B_L
3 C M C_M
4 D N D_N
O de manera equivalente, como señala @daroczig:
within(DF, C <- paste(A, B, sep=''_''))
Mi favorito personal implica hacer uso de la unite
en tidyr
:
set.seed(1)
df <- data.frame(colA = sample(LETTERS, 10),
colB = sample(LETTERS, 10))
# packs: pipe + unite
require(magrittr); require(tidyr)
# Unite
df %<>%
unite(ColAandB, colA, colB, remove = FALSE)
Resultados
> head(df, 3)
ColAandB colA colB
1 G_F G F
2 J_E J E
3 N_Q N Q
Notas laterales
Personalmente, considero que la funcionalidad remove = TRUE / FALSE
de unir es muy útil. Además, tidyr
dplyr
muy bien el flujo de trabajo dplyr
y funciona bien con separate
en caso de que cambie de opinión sobre las columnas que se fusionan. En la misma línea, si las NA
son el problema al introducir na.omit
en su flujo de trabajo, le permitiría dejar caer convenientemente las filas indeseables antes de crear la columna deseada.