Объединить / объединить два столбца внутри фрейма данных
Скажи, у меня есть эти данные,
(df <- data.frame( col1 = c('My','Your','His','Thir'), col2 = c('Cat','Dog','Fish','Dog')))
col1 col2
1 My Cat
2 Your Dog
3 His Fish
4 Thir Dog
и я хочу объединить столбцы, как это
`some magic`
col1 col2 col3
1 My Cat My Cat
2 Your Dog Your Dog
3 His Fish His Fish
4 Thir Dog Thir Dog
Что я делаю? может быть, даже с запятой (,), как это,
`some magic`
col1 col2 col3
1 My Cat My, Cat
2 Your Dog Your, Dog
3 His Fish His, Fish
4 Thir Dog Thir, Dog
2 ответа
Решение
df$col3 <- paste(df$col1, df$col2, sep=",")
, Вы также можете использовать sprintf
а также paste0
функции.
df$col3 <- paste(df$col1, df$col2, sep=",") # comma separator
df$col3 <- paste0(df$col1, df$col2) # for no separator
Если вы хотите оставить их в виде списка из двух (не объединяющих обе строки), то следующее будет хорошо работать
within(df, col3 <- Map(list, as.character(col1),as.character(col2)))
col1 col2 col3
1 My Cat My, Cat
2 Your Dog Your, Dog
3 His Fish His, Fish
4 Thir Dog Thir, Dog
Map
простая обертка для mapply(..., SIMPLIFY = FALSE)