Чтобы обозначить выбросы с именами ростов (на основе ответа JasonAizkalns )
library(dplyr)
library(ggplot2)
library(tibble)
is_outlier <- function(x) {
return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
}
dat <- mtcars %>% tibble::rownames_to_column(var="outlier") %>% group_by(cyl) %>% mutate(is_outlier=ifelse(is_outlier(drat), drat, as.numeric(NA)))
dat$outlier[which(is.na(dat$is_outlier))] <- as.numeric(NA)
ggplot(dat, aes(y=drat, x=factor(cyl))) + geom_boxplot() + geom_text(aes(label=outlier),na.rm=TRUE,nudge_y=0.05)
Две вещи неверны:
В операторе return
, который вы использовали в коде, есть проблема. return
выходит из подпрограммы, поэтому строка bot.send_message(bot.get_channel("534496148149370900"), mesg)
фактически никогда не вызывается. Таким образом, ваш код должен измениться на что-то вроде этого:
#---Report Command---#
@bot.command(pass_context=True)
async def report(ctx, reportedTag, reporterTag, *reasons):
if int(ctx.message.channel.id) == 416164062901305345:
reason = ' '.join(reasons)
await bot.delete_message(ctx.message)
mesg = "Report by "+ reporterTag + " for " + reportedTag + "Reason is: " + reason
await bot.send_message(bot.get_channel("534496148149370900"), mesg)
return await bot.say("Report recieved. Staff have been notified :)\nEnjoy your day and we'll take care of this")
else:
print ("Something went wrong")
Кроме того, если «Что-то пошло не так» на самом деле выводится , это означает, что int(ctx.message.channel.id) == 416164062901305345
ложно. Пожалуйста, проверьте ID и канал, на котором вы пишете.