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.