Я прикрепил пример кода ниже. a
является категориальной переменной с 0
и 1
, но количество уровней фактора может быть динамическим.
Кто-нибудь, пожалуйста, измените таблицу, чтобы добавить еще один столбец со значениями a = 0
и a = 1
. Чтобы я мог использовать этот столбец для фасетирования в ggplot для улучшения маркировки фасетов.
Также измените последовательность фасетов в ggplot, т.е. панель a = 1
должна быть выше a = 0
Спасибо
library(tidyverse)
# continuous variables
x1 <- seq(-5, 5, 0.1)
# compute y1
error_term <- runif (1, min = -2, max = 2)
y1 <- 1/(1 + exp(-x1 + error_term))
# compute y2
error_term <- runif (1, min = -2, max = 2)
y2 <- 1/(1 + exp(-x1 + error_term))
# merge x and y
y <- c(y1, y2)
x <- c(x1, x1)
# categorical variable
a <- c(rep(0, 101), rep(1, 101))
# tibble
tbl <- tibble(x, a, y)
# GGPLOT ---------------------------------------------------------------------
p <- ggplot(data = tbl,
aes(x = x,
y = y,
color = factor(a))) +
geom_line() +
theme_bw() +
facet_grid(a ~ .) +
theme(legend.position = "none")
Это может быть достигнуто так:
levels
аргумента factor
labels
аргумента factor
library(tidyverse)
# continuous variables
x1 <- seq(-5, 5, 0.1)
# compute y1
error_term <- runif (1, min = -2, max = 2)
y1 <- 1/(1 + exp(-x1 + error_term))
# compute y2
error_term <- runif (1, min = -2, max = 2)
y2 <- 1/(1 + exp(-x1 + error_term))
# merge x and y
y <- c(y1, y2)
x <- c(x1, x1)
# categorical variable
a <- c(rep(0, 101), rep(1, 101))
# tibble
tbl <- tibble(x, a, y)
tbl <- mutate(tbl, a = factor(a, levels = c(1, 0), labels = paste0("a = ", c(1, 0))))
ggplot(data = tbl,
aes(x = x,
y = y,
color = a)) +
geom_line() +
theme_bw() +
facet_grid(a ~ .) +
theme(legend.position = "none")
Большое спасибо @stefan