是否有用于构建包含 2 个变量的箱线图的 R 函数?

Is there an R function for construct a boxplot including 2 variables?

我想用以下两个变量构建一个箱线图。我希望状态为 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)

它returns

adding class "factor" to an invalid object

我已经检查过这个错误,我知道这是因为我的状态和比率都是因子 类。但是,如果我将它转换成整数,它会丢失一些信息。希望大家多多指教

您的第一个问题是 Ratio 变量中的 "%"。您需要将变量转换为数字。

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))