r - 如何检查后续日期变量是否出现在前一个日期变量之上或之后

标签 r

我有 10 个日期变量,假设每个后续变量都在前一个变量之上或之后(我必须检查这个假设是否成立)。我要比较TloCriminal1CrimeDetails1Di_0001TloCriminal1CrimeDetails2Di_0001 TloCriminal1CrimeDetails2Di_0001TloCriminal1CrimeDetails3Di_0001 , ..., TloCriminal1CrimeDetails9Di_0001TloCriminal1CrimeDetails10D_0001 。理想情况下,对于每一对,我想输出名为 compare1to2 的变量。 , compare2to3 , ..., compare9to10等于 1如果该对的第二个实例位于第一个实例之上或之后,且 0否则。如果这是不可能的,则等于 1 的“总体”变量如果任何对是“坏”的(例如,第二个日期在第一个日期之前)并且 0否则就足够了。

我尝试在 SAS 工作,但意识到这是不可能的,所以我换到了 R。我没有一个好的起点。这是我的数据集的片段。感谢您的帮助!

structure(list(TloCriminal1CrimeDetails1Di_0001 = structure(c(10197, 
12205, 15979, 12586, NA, 13787, 12913, 14616), label = "TloCriminal1CrimeDetails1DispositionDate", format.sas = "DATE", class = "Date"), 
    TloCriminal1CrimeDetails2Di_0001 = structure(c(10148, NA, 
    15979, 12586, NA, 14516, 12913, 14665), label = "TloCriminal1CrimeDetails2DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails3Di_0001 = structure(c(10148, NA, 
    NA, 12586, NA, 13787, 12913, 14665), label = "TloCriminal1CrimeDetails3DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails4Di_0001 = structure(c(NA, NA, NA, 
    NA, NA, NA, 12913, 14670), label = "TloCriminal1CrimeDetails4DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails5Di_0001 = structure(c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), label = "TloCriminal1CrimeDetails5DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails6Di_0001 = structure(c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), label = "TloCriminal1CrimeDetails6DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails7Di_0001 = structure(c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), label = "TloCriminal1CrimeDetails7DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails8Di_0001 = structure(c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), label = "TloCriminal1CrimeDetails8DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails9Di_0001 = structure(c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), label = "TloCriminal1CrimeDetails9DispositionDate", format.sas = "MMDDYY", class = "Date"), 
    TloCriminal1CrimeDetails10D_0001 = structure(c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), label = "TloCriminal1CrimeDetails10DispositionDate", format.sas = "MMDDYY", class = "Date")), row.names = c(NA, 
-8L), class = c("tbl_df", "tbl", "data.frame"), label = "CRIME_CHK")

最佳答案

我们可以删除第一列和最后一列,然后以向量化的方式进行比较

out <- +(df1[-1] >= df1[-ncol(df1)])
out[is.na(out)] <- FALSE

如果是在每列中查找任意元素

colSums(out, na.rm = TRUE) == 0

关于r - 如何检查后续日期变量是否出现在前一个日期变量之上或之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65512699/

相关文章:

r - install.packages() 无法使用自签名 SSL 证书访问自定义 CRAN

通过合并变量中的行来重新组织数据库

r - 条形图 dplyr 汇总值

r - R填充向量

r - 如何在R中的list()中滑动元素的长度?

r - 使用 dplyr 实用程序将纯文本数据 reshape 为常规表格数据的任何方法?

用于以后计算的 Shiny 中的 react 变量

r - 如何在不考虑顺序的情况下生成所有可能的向量组合?

r - 如何使用plotmath 将一个表达式放在另一个表达式之上

r - 根据位置放置字符