【问题标题】:Disply only the top outliers in R仅显示 R 中的顶部异常值
【发布时间】:2020-11-29 17:32:47
【问题描述】:

是否可以在箱线图上方显示数据,仅是异常值?

代码:

charges <- read.csv("tempcharges.csv")
data = read.csv("discharges.csv")

#MERGING THE TWO DATA FRAMES :

cdata <-  merge.data.frame(data,charges,by.x = "Enc",by.y = "Enc")

#TRANSFORMING VARIABLES
aaa <- mdy(cdata$discharge_date)
dates <- format(aaa,"%b%y")
charge <- cdata$TotalCharge
e <- (cdata$Enc)

#PLOT
plots <- ggplot(cdata, aes(x=aaa,y=charge,group=month(aaa)))+ 
scale_x_date(labels = function(z) format(z, format = "%b%y"))+
geom_boxplot(notch=TRUE,na.rm=TRUE)+
labs(title="INPATIENT CHARGE DATA TREND",
x="Period Data", 
y="Charges") + ylim(0,60000)
plots

【问题讨论】:

  • 您只想要点吗?还是点+行号?请描述您想看到的内容。由于 boxplor 中的异常值具有固定定义,我认为它是 1.5 x 75% 分位数),您可以简单地过滤这些情况并显示为点图。
  • 小修正:它是 IQR 的 1.5 倍,而不是 1.5 倍 75% 分位数。
  • 谢谢...!我想将点+行号显示为绘图数据,目前仅关注顶部异常值 5 到 10 个数据点,因为这样看起来很笨重。

标签: r ggplot2 outliers


【解决方案1】:

您可以隔离异常值(即 > 或

library(dplyr)
library(magrittr)
library(ggplot2)
library(ggrepel)

dat <- data.frame(row=seq(1:100), value=rnorm(100))

iqr <- IQR(dat$value)

outliers <- dat %>% filter(value > 1.5*iqr | value < -1.5*iqr)

ggplot(outliers, aes(x=0, y=value)) +
  geom_point() +
  geom_text(aes(label=row, hjust=-2), cex=3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多