是否有一个R函数来构造包含2个变量的箱形图?

时间:2019-10-01 02:42:31

标签: r ggplot2 boxplot

我想用以下两个变量构建箱线图。我希望状态为x轴,比率为y轴,最后的图是每个状态的箱线图的组合。实际数据要大得多。

df <- read.table(text = "
State   Ratio
WA  100.00%
TX  66.67%
TX  100.00%
CA  0.00%
CO  80.00%
IN  50.00%
MI  0.00%
TX  40.00%
OH  0.00%
UT  0.00%
CA  0.00%
AZ  0.00%
TX  0.00%
GA  0.00%
NY  25.00%
DC  20.00%
NY  85.71%
CA  0.00%
TN  0.00%
CA  40.00%
", header = TRUE, stringsAsFactors = FALSE)

当我使用

boxplot(ratio~State, data = df)

它返回

adding class "factor" to an invalid object

我已经检查了这个错误,并且我知道这是因为我的状态和比率都是因子类。但是,如果将其转换为整数,它将丢失一些信息。希望有任何建议

1 个答案:

答案 0 :(得分:2)

您的第一个问题是比率变量中的“%” 。您需要将变量转换为数字。

df$Ratio <- gsub("%","", df$Ratio)
df$Ratio <- as.numeric(df$Ratio)

boxplot(Ratio~State, data = df)

#ggplot2 is an option:

library(ggplot2)

ggplot(df) + geom_boxplot(aes(x = State, y = Ratio))