Как объединить два столбца в R со специальным символом?
У меня есть таблица, прочитанная в R следующим образом:
column1 column2
A B
Какую команду следует использовать для сопоставления двух столбцов следующим образом?
Column 3
A_B
Ответы
Ответ 1
Я немного не уверен, что вы подразумеваете под "слиянием", но это то, что вы имеете в виду?
> 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
Или, что эквивалентно, как указывает @daroczig:
within(DF, C <- paste(A, B, sep='_'))
Ответ 2
Мой личный фаворит подразумевает использование unite
в 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)
Результаты
> head(df, 3)
ColAandB colA colB
1 G_F G F
2 J_E J E
3 N_Q N Q
Боковые заметки
Лично я считаю, что функциональные возможности remove = TRUE / FALSE
очень полезны. Кроме того, tidyr
отлично работает dplyr
рабочий процесс и хорошо работает с separate
в случае изменения ваш разум об объединении столбцов. В тех же строках, если NA
- это проблема ввода na.omit
в ваш рабочий процесс, вы сможете удобно удалить нежелательные строки перед созданием нужного столбца.