计算两列之间的日期不匹配

Count date mismatches between two columns

我的数据集中每个人都有两列出生日期(在数据框中)。我希望 R 计算两列中的值不相同的次数。这意味着计算两个出生日期列不相同的人数。

当 1 = 出生日期不相等时,我尝试创建一个循环来获取向量(它的长度 = 数据集中的人数)。

x=rep(0,4092)
  for (i in length(x)){
    if(mydata$datebirth1[i]== (mydata$datebirth2[i]){x[i]=FALSE}
    else{x[i]=TRUE}
  } 
x

请注意,我在 2 列中有一些 NA 值

首先,您创建一个包含 1 和 0 的新列,其中 1 表示两个日期不匹配。

df <- transform(df, c= ifelse(a==b, 0, 1))

然后您可以轻松地将 sum 应用于您创建的列:

sum(df$c)

为了将来,请考虑提供您目前尝试过的解决方案的代码。

您可以使用 dplyr 轻松做到这一点:

library(tidyverse)

tibble::tibble(one = c(1L:6L),
               two = c(1L, 2L, 4L:7L)) %>% 
  dplyr::mutate(same = one == two)

A tibble: 6 x 3
    one   two same 
  <int> <int> <lgl>
1     1     1 TRUE 
2     2     2 TRUE 
3     3     4 FALSE
4     4     5 FALSE
5     5     6 FALSE
6     6     7 FALSE

一和二模拟您的日期列。数据格式无关紧要