Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查R中的日期是否按时间顺序排列?_R_Date - Fatal编程技术网

如何检查R中的日期是否按时间顺序排列?

如何检查R中的日期是否按时间顺序排列?,r,date,R,Date,我有一个包含4个日期列的大型数据集(比如date_1、date_2、date_3、date_4)。我想检查日期1是否在日期2之前,日期2是否在日期3之前,日期3是否在日期4之前。我该怎么做?我曾想过做一个嵌套的if语句,但运气不太好。假设您的数据与此类似: df <- structure(list(id = 1:4, Date_1 = structure(c(18534, 18544, 18536, 18547), class = "Date"), Date_2 =

我有一个包含4个日期列的大型数据集(比如date_1、date_2、date_3、date_4)。我想检查日期1是否在日期2之前,日期2是否在日期3之前,日期3是否在日期4之前。我该怎么做?我曾想过做一个嵌套的if语句,但运气不太好。

假设您的数据与此类似:

df <- structure(list(id = 1:4, Date_1 = structure(c(18534, 18544, 18536, 
18547), class = "Date"), Date_2 = structure(c(18533, 18539, 18540, 
18545), class = "Date"), Date_3 = structure(c(18532, 18535, 18543, 
18541), class = "Date"), Date_4 = structure(c(18537, 18550, 18545, 
18537), class = "Date")), row.names = c(NA, -4L), class = c("tbl_df", 
"tbl", "data.frame"))

df
# A tibble: 4 x 5
#     id Date_1     Date_2     Date_3     Date_4    
#  <int> <date>     <date>     <date>     <date>    
#1     1 2020-09-29 2020-09-28 2020-09-27 2020-10-02
#2     2 2020-10-09 2020-10-04 2020-09-30 2020-10-15
#3     3 2020-10-01 2020-10-05 2020-10-08 2020-10-10
#4     4 2020-10-12 2020-10-10 2020-10-06 2020-10-02
在base R中,您可以使用
apply

cols <- grep('Date', names(df))
df$check <- apply(df[cols], 1, function(x) all(diff(as.Date(x)) > 0))

cols请添加小示例以及预期输出。阅读并了解如何给予帮助。非常感谢,这非常有帮助!也谢谢你给我的关于如何提出一个好问题的建议。我是新来的,但我会记住这一点的!
cols <- grep('Date', names(df))
df$check <- apply(df[cols], 1, function(x) all(diff(as.Date(x)) > 0))