如何将数据系列规范化为起始值 = 0?
How to normalize data series to start value = 0?
我有一个类似这样的数据集:
library(ggplot2)
data(economics_long)
economics_long$date2 <- as.numeric(economics_long$date) + 915
ggplot(economics_long, aes(date2, value01, colour = variable)) +
geom_line()
给出以下情节:
现在我想将其归一化为绿线(或均值)的起始值,因此所有变量都从 Y 轴的同一点开始。类似这样:
感谢您的帮助。
您可以使用 by()
.
根据 variable
值减去每个向量的起始值
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()
使用 group_by()
和 mutate()
将每个变量移动其初始值 y-value。
library(tidyverse)
data(economics_long)
economics_long %>%
group_by(variable) %>%
mutate(value_shifted = value01 - value01[1]) %>%
ungroup() %>%
ggplot(aes(date2, value_shifted, colour = variable)) +
geom_line()
我有一个类似这样的数据集:
library(ggplot2)
data(economics_long)
economics_long$date2 <- as.numeric(economics_long$date) + 915
ggplot(economics_long, aes(date2, value01, colour = variable)) +
geom_line()
给出以下情节:
现在我想将其归一化为绿线(或均值)的起始值,因此所有变量都从 Y 轴的同一点开始。类似这样:
感谢您的帮助。
您可以使用 by()
.
variable
值减去每个向量的起始值
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()
使用 group_by()
和 mutate()
将每个变量移动其初始值 y-value。
library(tidyverse)
data(economics_long)
economics_long %>%
group_by(variable) %>%
mutate(value_shifted = value01 - value01[1]) %>%
ungroup() %>%
ggplot(aes(date2, value_shifted, colour = variable)) +
geom_line()