PU
Size: a a a
a
PU
АК
KF
АК
col_1 col_2 groupНадо получить таблицу следующего вида:
1: 1 NA 1
2: NA 2 1
3: 1 NA 2
4: NA 2 2
col_1 col_2 groupКод для воспроизведения таблицы:
1: 1 2 1
2: 1 2 2
DT <- data.table(Это странный разреженный формат, которые надо каким-то образом агрегировать по группам. Возможно есть вариант с сортировкой и хитрым фильтром.
col_1 = c(1, NA, 1, NA),
col_2 = c(NA, 2, NA, 2),
group = c(1, 1, 2, 2)
)
PU
col_1 col_2 groupНадо получить таблицу следующего вида:
1: 1 NA 1
2: NA 2 1
3: 1 NA 2
4: NA 2 2
col_1 col_2 groupКод для воспроизведения таблицы:
1: 1 2 1
2: 1 2 2
DT <- data.table(Это странный разреженный формат, которые надо каким-то образом агрегировать по группам. Возможно есть вариант с сортировкой и хитрым фильтром.
col_1 = c(1, NA, 1, NA),
col_2 = c(NA, 2, NA, 2),
group = c(1, 1, 2, 2)
)
> tg_cols <- names(DT)[names(DT) != 'group']
> DT[, lapply(.SD, function(x) unique(na.omit(x))), by = group, .SDcols = tg_cols]
group col_1 col_2
1: 1 1 2
2: 2 1 2
АК
> tg_cols <- names(DT)[names(DT) != 'group']
> DT[, lapply(.SD, function(x) unique(na.omit(x))), by = group, .SDcols = tg_cols]
group col_1 col_2
1: 1 1 2
2: 2 1 2
PU
PU
АК
АК
grp_col <- "group"
to_fix <- names(DT1)[colSums(is.na(DT1)) > 0L]
to_fix <- setdiff(to_fix, grp_col)
DT1[, lapply(.SD, na.omit), by = "group", .SDcols = to_fix]
АК
АК
> tg_cols <- names(DT)[names(DT) != 'group']
> DT[, lapply(.SD, function(x) unique(na.omit(x))), by = group, .SDcols = tg_cols]
group col_1 col_2
1: 1 1 2
2: 2 1 2
unique
можно first
.PU
АК
first
наворотили внутри проверок.ГД
grp_col <- "group"
to_fix <- names(DT1)[colSums(is.na(DT1)) > 0L]
to_fix <- setdiff(to_fix, grp_col)
DT1[, lapply(.SD, na.omit), by = "group", .SDcols = to_fix]
to_fix <- names(DT1)[colSums(is.na(DT1)) > 0L]```
DT1[, lapply(.SD, na.omit), by = "group", .SDcols = to_fix]
АК
to_fix <- names(DT1)[colSums(is.na(DT1)) > 0L]```
DT1[, lapply(.SD, na.omit), by = "group", .SDcols = to_fix]
.SDcols
указана не понятно.ИП
АК