Объединить совпадающие строки идентификаторов в многостолбцовом фрейме данных R - PullRequest
0 голосов
/ 24 марта 2020

У меня проблема с объединением похожих строк в DF.

DataFrame У меня сейчас

DataFrame, который я хочу

Я пытаюсь объединить данные в похожий столбец c_code. * У меня есть разные типы данных в моем DF (даты, NA, числа ET C ..)

большое спасибо.

1 Ответ

0 голосов
/ 24 марта 2020

Вот подход data.table. Это предполагает, что ваши данные имеют NA, где пробелы.

df <- structure(list(Time3_Q2 = c(2, 1, NA, NA, NA, 2), Time3_Q1 = c(1, 
1, NA, NA, NA, 1), Time2_Q3 = c(NA, 4, 3, 3, NA, NA), Time2_Q2 = c(NA, 
3, 2, 2, NA, NA), Time2_Q1 = c(NA, 2, 1, 1, NA, NA), Time1_Q3 = c(3, 
NA, NA, NA, 1, 1), Time1_Q2 = c(2, NA, NA, NA, 2, 2), Time1_Q1 = c(1, 
NA, NA, NA, 3, 3), c_code = structure(c(1L, 2L, 3L, 1L, 2L, 3L
), .Label = c("AA1234", "AB1234", "AC1234"), class = "factor")), class = "data.frame", row.names = c(NA,-6L))

library(data.table)
setDT(df)
df[,lapply(.SD,function(x){x[!is.na(x)]}),by="c_code"]

Если у вас есть пустые символьные векторы "", где пробелы, вы можете использовать это:

df[,lapply(.SD,function(x){x[x!=""]}),by="c_code"]
...