У меня есть два набора данных, в которых в нескольких временных точках измеряется определенное значение. Я хотел бы визуализировать соотношение между двумя наборами данных с помощью линейного графика. Однако временные точки измерений не полностью перекрываются, и некоторые эксперименты содержат больше значений, чем другие.
Данные
df_1 <- as.data.frame(cbind(c(1,2,3,4,5,6,7,8,9,10), c(1,4,7,8,9.5,17,41,27, 26, 10)))
df_2 <- as.data.frame(cbind(c(0.1, 0.5, 2, 3, 4.4,5.3,6,7,8,10,12,15,16,20), c(0.1,2,4,6,7.5,6.3,9,19,22,23,24,51,31,23)))
Графики
library(tidyverse)
ggplot()+
geom_line(data = df_1, aes(x=V1, y=V2), col = "black") +
geom_line(data = df_2, aes(x=V1, y=V2), col = "red")
Далее я хотел бы построить соотношение между двумя кривыми. Однако, поскольку измеренные точки данных не распределены равномерно (и измерены в несколько разное время), я не могу просто разделить значение для каждой временной точки и отобразить результат.
Вопрос
Как вы рассчитываете соотношение между двумя неравномерно расположенными фреймами данных (которые могут быть разной длины) в R?
Дополнительный пример
У меня есть два (пример) набора данных. Третий набор данных - это ожидаемый результат (df_3
). Зеленая линия представляет ожидаемый результат: соотношение между df_2
/ df_1
.
df_1 <- as.data.frame(cbind(time = c(1:5), value = c(1:5)))
df_2 <- as.data.frame(cbind(time = c(1.5, 2, 3,4), value = c(2,2,2.5,3.5)))
df_3 <- as.data.frame(cbind(time = c(1.5, 2, 3,4), value = c(1.33, 1, 0.83, 0.875)))
ggplot() +
geom_point(data = df_1, aes(x=time, y=value), col = "black", size = 3) +
geom_point(data = df_2, aes(x=time, y=value), col = "red", size =3) +
geom_line(data = df_1, aes(x=time, y = value), col = "black") +
geom_line(data = df_2, aes(x = time, y = value), col = "red") +
geom_point(data =df_3, aes(x = time, y = value), col = "green", size = 3) +
geom_line(data=df_3, aes(x=time, y = value), col = "green")