如何在R中比较两个数据集的POSIX日期时间

问题描述

大家晚上好! 我想对R中的日期进行比较。 我有2个数据集,maint.csv和failures.csv:

> str(maint)
'data.frame':   3286 obs. of  3 variables:
 $ datetime : POSIXct,format: "2014-06-01 06:00:00" "2014-07-16 06:00:00" "2014-07-31 06:00:00" ...
 $ machineID: int  1 1 1 1 1 1 1 1 1 1 ...
 $ comp     : Factor w/ 4 levels "comp1","comp2",..: 2 4 3 1 4 1 3 1 4 3 ...

> str(failures)
'data.frame':   761 obs. of  3 variables:
 $ datetime : POSIXct,format: "2015-01-05 06:00:00" "2015-03-06 06:00:00" "2015-04-20 06:00:00" ...
 $ machineID: int  1 1 1 1 1 1 1 2 2 2 ...
 $ failure  : Factor w/ 4 levels "comp1",..: 4 1 2 4 4 2 4 1 2 2 ...

您可以看到两个日期时间均为POSIX格式。现在,761行failures.csv类似于maint.csv 3286行的子集,从某种意义上说,几乎所有故障观察都来自maint文件,但其中有些行不存在maint.csv 我想构建一个for循环,该循环只打印出现故障的行,而不打印维护行的行 我能怎么做?我从未在R中使用过if-else,尤其是我不知道如何比较日期。 谢谢。

解决方法

我可以在网络上找到您正在使用的数据集...

我认为您可以使用@Repository public interface EntityRepo extends JpaRepository<Entity,Long> { Entity findByMyColumn(List<String> myColumn); } 来实现它,如下所示:

%in%

以下是输出:

# setup environment
library(dplyr)
# filter only when datetime does not match
filter_failures = filter(failures,!datetime %in% maint$datetime)
# print the dataframe
head(filter_failures)

让我知道这是否是您想要的。