Образец набора данных:
sample <- structure(list(NAME = c("WEST YORKSHIRE", "WEST YORKSHIRE", "WEST YORKSHIRE",
"WEST YORKSHIRE", "WEST YORKSHIRE", "WEST YORKSHIRE", "NOTTINGHAMSHIRE",
"NOTTINGHAMSHIRE", "NOTTINGHAMSHIRE", "NOTTINGHAMSHIRE", "NOTTINGHAMSHIRE",
"NOTTINGHAMSHIRE"), ACH_DATE = structure(c(17410, 17410, 17410,
17440, 17440, 17440, 17410, 17410, 17410, 17440, 17440, 17440
), class = "Date"), MEASURE = c("DIAG_RATE_65_PLUS", "DIAG_RATE_65_PLUS_LL",
"DIAG_RATE_65_PLUS_UL", "DIAG_RATE_65_PLUS", "DIAG_RATE_65_PLUS_LL",
"DIAG_RATE_65_PLUS_UL", "DIAG_RATE_65_PLUS", "DIAG_RATE_65_PLUS_LL",
"DIAG_RATE_65_PLUS_UL", "DIAG_RATE_65_PLUS", "DIAG_RATE_65_PLUS_LL",
"DIAG_RATE_65_PLUS_UL"), VALUE = c(73.6, 66.2, 79.8, 73.7, 66.3,
80, 77, 69.1, 83.6, 77.5, 69.6, 84.2)), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -12L))
Я пытаюсь визуализировать панели ошибок для точек, показанных здесь:
sample %>% filter(MEASURE == "DIAG_RATE_65_PLUS") %>% ggplot(aes(x=ACH_DATE, y=VALUE, group=ACH_DATE)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=0.2)
Как вы можете видеть в нижней части иверхние пределы содержатся в переменной MEASURE
с интересующими меня точками в длинном формате.
Я застрял в том, как я могу отфильтровать df дальше, чтобы использовать нижние и верхние предельные значения вymin
и ymax
аргументы.
Я пробовал что-то вроде:
sample %>% filter(MEASURE == "DIAG_RATE_65_PLUS") %>% ggplot(aes(x=ACH_DATE, y=VALUE, group=ACH_DATE)) +
geom_dotplot(binaxis = "y", stackdir = "center", dotsize=0.2) +
geom_errorbar(aes(x = ACH_DATE,
ymin = sample %>% filter(MEASURE == "DIAG_RATE_65_PLUS_LL") %>% select(VALUE),
ymax = sample %>% filter(MEASURE == "DIAG_RATE_65_PLUS_UL") %>% select(VALUE)),
data = sample %>% filter(MEASURE != "DIAG_RATE_65_PLUS"),
colour="red")
, который выдает ошибку: Error: Columns `ymin`, `ymax` must be 1d atomic vectors or lists
.Я пытался обернуть свои входные данные в аргументы ymin
и ymax
с помощью as.vector
, но, похоже, это не помогает.