簡體   English   中英

如何將數據系列標准化為起始值 = 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 -value 減去每個向量的起始值。

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 值移動每個變量。

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()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM