2017-06-15 5 views
0

Ich bin neu in diesem Forum, also entschuldige mich, wenn ich meine Frage nicht gleich beim ersten Start bekomme. Ich habe im Forum recherchiert, um eine Antwort auf mein Problem zu finden, habe aber noch keine passende Lösung gefunden.
Ich versuche, zwei Zeitreihen mit linearer Regression und Streudiagramme zu vergleichen. Die Zeitreihe sollte Messungen alle 2 Minuten haben, aber wie es in der Realität ist, schreibt der Datenlogger manchmal überhaupt keine Werte und manchmal erst nach 3 Minuten. Also versuche ich alle Paare (x, y) zu finden, die den gleichen Zeitstempel haben und den Rest eliminieren.Scatterplot mit Zeitreihe unterschiedlicher Länge in R

   Time   x 
1 2016-08-15 09:58:00 2.7421 
2 2016-08-15 10:02:00 2.7731 
3 2016-08-15 10:04:00 2.7603 
4 2016-08-15 10:06:00 2.7426 
5 2016-08-15 10:08:00 2.7481 
6 2016-08-15 10:10:00 2.7294 
7 2016-08-15 10:12:00 2.7428 
8 2016-08-15 10:15:00 2.7371 
9 2016-08-15 10:16:00 2.7677 
10 2016-08-15 10:18:00 2.7449 



      Time   y 
1 2016-08-15 10:00:00 1.3656 
2 2016-08-15 10:02:00 1.3680 
3 2016-08-15 10:04:00 1.3785 
4 2016-08-15 10:06:00 1.3819 
5 2016-08-15 10:08:00 1.3720 
6 2016-08-15 10:10:00 1.3702 
7 2016-08-15 10:12:00 1.3550 
8 2016-08-15 10:14:00 1.3696 
9 2016-08-15 10:16:00 1.3603 
10 2016-08-15 10:18:00 1.3813 

In diesem Beispiel sollten Werte für 1 und 8 eliminiert werden.

Antwort

0

Mit Streudiagramm:

ndf = merge(df1, df2, by = "Time", all = FALSE) 

p = ggplot(ndf, aes(x, y)) + 
    geom_point(colour = "red", size = 2) 

p 
+0

Vielen Dank! Das hat für mich funktioniert. Es ist wahrscheinlich erwähnenswert, dass dies nur mit dem POSIXct-Format für Datumsangaben funktioniert, nicht mit dem POSIXlt-Format. – Janite

0
> library(lubridate) 

Attaching package: ‘lubridate’ 

The following object is masked from ‘package:base’: 

    date 


> df1$Time=mdy_hm(paste(df1$Time)) 
> df1 
        Time  x 
1 2016-08-15 09:58:00 2.7421 
2 2016-08-15 10:02:00 2.7731 
3 2016-08-15 10:04:00 2.7603 
4 2016-08-15 10:06:00 2.7426 
5 2016-08-15 10:08:00 2.7481 
6 2016-08-15 10:10:00 2.7294 
7 2016-08-15 10:12:00 2.7428 
8 2016-08-15 10:15:00 2.7371 
9 2016-08-15 10:16:00 2.7677 
10 2016-08-15 10:18:00 2.7449 

> df2$Time=mdy_hm(paste(df2$Time)) 
> df2 
        Time  y 
1 2016-08-15 10:00:00 1.3656 
2 2016-08-15 10:02:00 1.3680 
3 2016-08-15 10:04:00 1.3785 
4 2016-08-15 10:06:00 1.3819 
5 2016-08-15 10:08:00 1.3720 
6 2016-08-15 10:10:00 1.3702 
7 2016-08-15 10:12:00 1.3550 
8 2016-08-15 10:14:00 1.3696 
9 2016-08-15 10:16:00 1.3603 
10 2016-08-15 10:18:00 1.3813 


> merge(df1,df2,by="Time") 
        Time  x  y 
    1 2016-08-15 10:02:00 2.7731 1.3680 
    2 2016-08-15 10:04:00 2.7603 1.3785 
    3 2016-08-15 10:06:00 2.7426 1.3819 
    4 2016-08-15 10:08:00 2.7481 1.3720 
    5 2016-08-15 10:10:00 2.7294 1.3702 
    6 2016-08-15 10:12:00 2.7428 1.3550 
    7 2016-08-15 10:16:00 2.7677 1.3603 
    8 2016-08-15 10:18:00 2.7449 1.3813 
Verwandte Themen