【问题标题】:Scatterplot with time series of different length in RR中具有不同长度时间序列的散点图
【发布时间】:2017-06-15 19:17:54
【问题描述】:

我是这个论坛的新手,所以如果我在第一次开始时没有正确回答我的问题,请原谅。我在论坛中进行了研究以找到我的问题的答案,但还没有找到合适的解决方案。
我正在尝试使用线性回归和散点图比较两个时间序列。时间序列应该每 2 分钟进行一次测量,但在现实生活中,有时数据记录器根本不写入值,有时仅在 3 分钟后才写入值。所以我试图找到所有具有相同时间戳的对 (x,y) 并消除其余的。

             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  

在此示例中,应消除 1 和 8 的值。

【问题讨论】:

    标签: r datetime


    【解决方案1】:

    带散点图:

    ndf = merge(df1, df2, by = "Time", all = FALSE)
    
    p = ggplot(ndf, aes(x, y)) +
      geom_point(colour = "red", size = 2)
    
    p
    

    【讨论】:

    • 谢谢!这对我有用。值得一提的是,这仅适用于日期的 POSIXct 格式,而不适用于 POSIXlt 格式。
    【解决方案2】:
        > 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 2018-12-01
      • 2016-04-22
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      • 2021-10-05
      相关资源
      最近更新 更多