Ter uma tabela de dados como a seguinte:
a <- data.table(col1 = c(1, 2, 3, NA, NA),
col2 = c(NA, NA, NA, 4, 5),
col3 = c("a", "b", "c", NA, NA),
col4 = c(NA, NA, NA, "d", "e"))
Gostaria de encontrar uma maneira de unificar col1 com col2 e col3 com col4 pulando os NAs e mantendo apenas os valores, com uma saída como a seguinte:
col1 col2
<num> <char>
1: 1 a
2: 2 b
3: 3 c
4: 4 d
5: 5 e
Existe alguma maneira de fazer isso? Eu estava pensando em usar a soma, mas é claro que não funciona com colunas de caracteres.
Usando coalescer em 2 colunas:
Uma maneira um pouco mais automatizada de usar coalesce em cada número n de colunas:
Usando
fifelse
fromdata.table
(como uma alternativa mais eficiente paraifelse
, conforme mencionado nos comentários):ou com
mapply
uma função para selecionar o primeiro nãoNA
valor: