Как нормализовать ряд данных для начального значения = 0? - PullRequest
1 голос
/ 06 марта 2019

У меня есть набор данных, подобный этому:

library(ggplot2)
data(economics_long)
economics_long$date2 <- as.numeric(economics_long$date) + 915
ggplot(economics_long, aes(date2, value01, colour = variable)) +
       geom_line()

, который дает следующий график:

enter image description here

Теперь я хотел бынапример, чтобы нормализовать его до начального значения зеленой линии (или среднего значения), чтобы все переменные начинались в одной точке осей Y.Аналогично этому:

enter image description here

Спасибо за любую помощь.

1 Ответ

1 голос
/ 06 марта 2019

Вы можете вычесть начальное значение каждого вектора в зависимости от значения variable, используя by().

library(ggplot2)
l <- by(economics_long, economics_long$variable, function(x) 
  within(x, varnorm <- value01 - value01[1]))
dat <- do.call(rbind, l)

ggplot(dat, aes(date2, value01.n, colour = variable)) +
  geom_line()

enter image description here

...