【问题标题】:Removing a category from boxplot in R从 R 中的箱线图中删除类别
【发布时间】:2020-07-01 15:21:50
【问题描述】:

我正在尝试在带有字符的数据框上制作箱线图(使用“stringsAsFactors = FALSE”命令导入数据框时删除了因子级别)。这是我的情节的示例代码:

boxplot(df$H~df$C, outline=F, na.rm = T, ylab="H", xlab="C", main="H by C", ylim=c(min(df$H),max(df$H)))

问题是 x 轴上的类别之一是“0”,我想删除它。有没有办法防止这个类别被绘制?

【问题讨论】:

  • 只需将正确的at 设置为NAboxplot(H ~ C, df, at = c(NA, 1, 2))boxplot(H ~ C, df, at = c(1, NA, 2))
  • @rawr 工作得很好,谢谢!

标签: r


【解决方案1】:

假设 df$C 是包含要排除的分类值“0”的字段,您可以创建一个新的数据框,然后用于绘制。

# exclude records with df$C value equal to 0
nonzero_df = df[df$C != "0"]

# produce boxplot
boxplot(nonzero_df$H~df$C, outline=F, na.rm = T, ylab="H", xlab="C", main="H by C", ylim=c(min(nonzero_df$H),max(nonzero_df$H)))

【讨论】:

    【解决方案2】:

    您需要删除0 级别:

    数据:

    df <- data.frame(
      v1 = c("A", "A", "A", "0", "B", "0", "B"),
      v2 = c(12, 23, 34, 45, 56, 67, 78)
    )
    

    解决方案:

    df2 <- droplevels(df[-which(df$v1=="0"), ]) # drop level
    boxplot(df2$v2 ~ df2$v1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 2012-12-21
      • 2021-09-29
      • 1970-01-01
      • 2020-01-14
      • 2021-05-12
      相关资源
      最近更新 更多