У меня есть кадр данных с двумя столбцами. Я хочу добавить еще два столбца в набор данных с подсчетами на основе агрегатов.Агрегирование в R
df <- structure(list(ID = c(1045937900, 1045937900),
SMS.Type = c("DF1", "WCB14"),
SMS.Date = c("12/02/2015 19:51", "13/02/2015 08:38"),
Reply.Date = c("", "13/02/2015 09:52")
), row.names = 4286:4287, class = "data.frame")
Я хочу просто подсчитать количество экземпляров SMS.Type и Reply.Date, где нет нулей. Итак, в приведенном ниже примере игрушек я сгенерирую 2 для SMS.Type и 1 для Reply.Date
Затем я хочу добавить это в фрейм данных как общее количество (Im известно, что они будут дублировать количество строки в исходном наборе данных, но тот ОК)
Я играл вокруг с совокупным и кол-функции, но безрезультатно
mytempdf <-aggregate(cbind(testtrain$SMS.Type,testtrain$Response.option)~testtrain$ID,
train,
function(x) length(unique(which(!is.na(x)))))
mytempdf <- aggregate(testtrain$Reply.Date~testtrain$ID,
testtrain,
function(x) length(which(!is.na(x))))
Может кто-нибудь помочь?
Спасибо за ваше время
Привет Давид, спасибо за введение меня data.table ... Можете ли вы объяснить, что каждая линия делает из SetDT вперед, если у вас есть время. Чтобы ответить на ваш вопрос, я использовал длину (unique()), чтобы попытаться подсчитать значения однозначно в столбцах –
. Я добавил объяснение. –
Большое спасибо за ваш ответ –