我想用以下两个变量构建箱线图。我希望状态为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
我已经检查了这个错误,并且我知道这是因为我的状态和比率都是因子类。但是,如果将其转换为整数,它将丢失一些信息。希望有任何建议
答案 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))