Как с помощью функции R aggregate () подсчитать различные значения? - PullRequest
0 голосов
/ 03 августа 2020

Мои данные выглядят так:

str(defects)

## 'data.frame':    22540 obs. of  8 variables:
##  $ BUG_ID         : int  2237 2239 2163 2163 2163 2163 2163 2163 2163 2163 ...
##  $ STATUS         : Factor w/ 5 levels "Assigned","Closed",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ SEVERITY       : Factor w/ 4 levels "1-Low","2-Medium",..: 4 3 3 3 3 3 3 3 3 3 ...
##  $ DETECTION_DATE : Date, format: "2017-10-31" "2017-10-31" ...
##  $ ACTUAL_FIX_TIME: int  1 1 20 20 20 20 20 20 20 20 ...
##  $ CLOSING_DATE   : Date, format: "2017-10-31" "2017-10-31" ...
##  $ DATE           : Date, format: "2017-10-31" "2017-10-31" ...
##  $ NOR            : int  1 1 1 1 1 1 1 1 1 1 ...

Мне нужно вычислить следующее, используя агрегатную функцию:

COUNT_DISTINCT(
    IF [CLOSING_DATE] == [DATE] THEN
        [BUG_ID] 
    END  
)

Вот что у меня есть:

aggregate(unique(BUG_ID) ~ DATE, defects, subset = CLOSING_DATE == DATE, length)

1 Ответ

0 голосов
/ 03 августа 2020

разобрался:

aggregate(CLOSED_DEFECTS ~ DATE, data = within(defects, CLOSED_DEFECTS <- ifelse(CLOSING_DATE == DATE, BUG_ID, NA)), function (x) if(length(x) > 0) length(unique(x)) - 1 else 0, na.action = na.pass)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...