Существует ли функция R для построения боксплота, включающего 2 переменные? - PullRequest
1 голос
/ 01 октября 2019

Я хотел построить коробочную диаграмму со следующими двумя переменными. Я хочу, чтобы состояние было осью 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 Ответ

2 голосов
/ 01 октября 2019

Ваша первая проблема с "%" в переменной 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))
...