Определите счетчик частоты за агрегатом в r - PullRequest
0 голосов
/ 28 августа 2018

Привет и добрый вечер, переполнения, это может быть очень простой ответ, и я надеюсь, что здесь ничего не идет (заранее извиняюсь, если я не предоставляю достаточно информации) ..... Короче говоря, я пытаюсь выяснить среднее время для разрешения дела в группе и сколько дел они разрешили. Для идентификации «MTTR» я делаю это:

avgMttrFreq <- aggregate(db$CAL_MTTR_CALC2 ~ db$ASSIGNMENT_GROUP, db ,mean)
avgMttrFreq[order(-avgMttrFreq[,2]),]
avgMttrOrder <-avgMttrFreq[order(-avgMttrFreq[,2]),]
avgMttrOrderDf <- data.frame(avgMttrOrder)
avgMttrTopX <- avgMttrOrderDf[1:20,]
avgMttrTopX

Вывод выглядит так: enter image description here

Круто ... теперь мы можем увидеть avg.mttr или среднее время разрешения для группы (отсортировано, что важно), но мне нужно иметь возможность добавить столбец "частота" .. ... что я имею в виду, сколько наблюдений осталось за 3 часа, чтобы решить в первом ряду? какие-нибудь идеи о том, как мы можем это сделать?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Надеюсь, это поможет

library(data.table)
data <- data.table(db)
data[, list(count=length(CAL_MTTR_CALC2), mean=mean(CAL_MTTR_CALC2)), by=c("ASSIGNMENT_GROUP")]
0 голосов
/ 28 августа 2018

путь data.table:

# example data
library(data.table)
data.table(
    group = sample(letters[1:3], 20, TRUE),
    time  = runif(20, 0, 10)
)

# or if your data are in a dataframe named 'df' convert to dt by:
dt <- as.data.table(df) #or just setDT(df)

# aggregate, creating 2 variables: avg_time and count
res <- dt[ , .(avg_time = mean(time), count = .N), by=group]

# print sorted result
res[order(avg_time, decreasing=TRUE)]

Неоправданный путь Base R:

# do mean and count (with length) separately
avgMttrFreq1 <- aggregate(CAL_MTTR_CALC2 ~ ASSIGNMENT_GROUP, db ,mean)
avgMttrFreq2 <- aggregate(CAL_MTTR_CALC2 ~ ASSIGNMENT_GROUP, db ,length)

# merge them together
avgMttrFreq <- merge(avgMttrFreq1, avgMttrFreq2, by="ASSIGNMENT_GROUP")

#then the rest of your code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...