计算两列之间的日期不匹配
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
一和二模拟您的日期列。数据格式无关紧要
我的数据集中每个人都有两列出生日期(在数据框中)。我希望 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
一和二模拟您的日期列。数据格式无关紧要