У меня есть два данных в одном столбце по их названию по оси Y и по дате / времени по оси X.
Я пытаюсь вычислить числовую производную для каждых двух данных, но я не понимаю, производную в R. (Я ищу stats::D
или diff
, но это не работает).
f (x) = (t_n-t_n-1) / (date_time_n / date_time_n -1)
, где f (x) будет моим столбцом calc.
, то есть, чтобы заменить мой calc=t/10
в приведенном ниже коде функцией, выполняющей это.(Я бы предпочел tidyverse / dplyr)
Ссылки
Ниже: изображение ggplot calc=t/10
, где calc
будет заменено навыведем.
library(tidyverse)
library(ggplot2)
datas<-data.frame(
t = c(
50 + c(0, cumsum(runif(9, -7, 7))),
70 + c(0, cumsum(runif(9, -10, 10)))
),
orig=c(rep("s1",10),rep("s2",10)),
date_heure = rep(
seq(from=as.POSIXct("2012-1-1 0:00", tz="UTC"),by="hour", length=10) ,
2
)
)
datas<- (datas
%>% mutate (
calc=t/10
)
)
(
ggplot(datas)
+ geom_line(mapping=aes(x = date_heure, y = t, color=orig, linetype = "s1"))
+ geom_line(mapping=aes(x = date_heure, y = calc, color=orig, linetype = "s2"))
+ scale_y_continuous(name = "t", sec.axis = sec_axis(trans=~(range(datas$calc)), name = "calc"))
+ geom_point(mapping = aes(x = date_heure, y = calc, color=orig), shape = 21, fill = "white")
+ scale_color_manual(name = "calc", values=c("red", "blue"))
+ scale_linetype_manual(name = "orig", values = c('solid', 'solid'),
guide = guide_legend(override.aes = list(colour=c("red", "blue"))))
)