Создать новый столбец, который соединяет 2 существующих столбца во фрейме данных - PullRequest
0 голосов
/ 26 марта 2019

Привет! Я хочу создать 3-й столбец во фрейме данных, который объединяет 2 существующих столбца в одном фрейме данных.

Например, у меня есть столбцы A и B, и у них есть нулевые значения в некоторых строках. Я хочу создать новый столбец C, в котором он объединяет значения в A и B, чтобы избавиться от нулей.

> A <- c('Tall', '', '', 'small')
> B <- c('','mid','medium','' )
> AB <-data.frame(A,B)
> AB
      A      B
1  Tall       
2          mid
3       medium
4 small       

Мне нужно создать столбец C, где он заполняет строки, в зависимости от того, какое значение имеет A или B

> AB
      A      B      C
1  Tall          Tall
2          mid    mid
3       medium medium
4 small         small

1 Ответ

1 голос
/ 26 марта 2019

Вы можете использовать apply и удалить все NA.

AB$C <- apply(AB, 1, function(x) {
  paste(setdiff(x, NA), collapse = "")
})
AB
      A      B      C
1  Tall          Tall
2          mid    mid
3       medium medium
4 small         small

Или использовать tidyr::unite

library(dplyr)
library(tidyr)
AB %>%
  unite(C, c(A, B), sep = "", remove = FALSE)
       C     A      B
1   Tall  Tall       
2    mid          mid
3 medium       medium
4  small small  

Использовать remove = TRUE, если вы не хотите оригиналстолбцы А и В

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...