R - Объединение повторяющихся строк в кадре данных в R:

65
8

У меня есть dataframe, как показано ниже: обратите внимание, что COL1 имеет повторяющиеся записи


COL1 COL2 COL3
10 hai 2
10 hai 3
10 pal 1

Я хочу, чтобы результат был таким, как показано ниже: ie COL1 должен иметь только уникальную запись (10), COL2 должен содержать объединенные записи под ним без дубликатов (hai pal) и COL3 должна содержать сумму записей (2 + 3 + 1 = 6)


ВЫВОД:


COL1   COL2     COL3
10 hai pal 6

спросил(а) 2016-10-12T17:02:00+03:00 3 года, 1 месяц назад
1
Решение
45

Возможно, нам нужно агрегировать по группам. Преобразуйте 'data.frame' в 'data.table' (setDT(df1), сгруппированные по 'COL1', paste элементам unique в 'COL2' вместе, а также получите sum в 'COL3'.

library(data.table)
setDT(df1)[,.(COL2 = paste(unique(COL2), collapse=" "), COL3= sum(COL3)) , by = COL1]
# COL1 COL2 COL3
#1: 10 hai pal 6

ответил(а) 2016-10-12T17:40:00+03:00 3 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема