Группировка фиктивных значений таблицы с использованием идентификатора - PullRequest
1 голос
/ 27 сентября 2019

У меня есть фиктивная таблица, которая дает 1, если у вас есть продукт, и 0, если у вас нет.Эта таблица была ориентирована на продукт, поэтому в ней указывается как клиент, так и продукт в каждой строке.

Однако клиент может иметь несколько продуктов и появляться во многих линиях.Я хочу сгруппировать (по сумме или количеству) все продукты в одну строку.Пример:

Nulls are supposed to be zeros for the solution query to work

Нули должны быть нулями, чтобы сработал запрос ответа на решение

И мне нужно это:

enter image description here

1 Ответ

1 голос
/ 27 сентября 2019

Опция с использованием dplyr

library(dplyr)

df %>% group_by(Client) %>% summarise_at(vars(TC:CA), function(x) sum(x))

 # Client    TC    CC    CA
#1 654        2     1     0
#2 666        0     0     1
#3 667        0     1     0

Данные

df <- structure(list(Product = structure(c(3L, 3L, 2L, 1L, 2L), .Label = c("CA", 
"CC", "TC"), class = "factor"), Client = structure(c(1L, 1L, 
1L, 2L, 3L), .Label = c("654", "666", "667"), class = "factor"), 
    TC = c(1, 1, 0, 0, 0), CC = c(0, 0, 1, 0, 1), CA = c(0, 0, 
    0, 1, 0)), .Names = c("Product", "Client", "TC", "CC", "CA"
), row.names = c(NA, -5L), class = "data.frame")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...