Подсчитать, сколько значений одинаково в двух столбцах в R - PullRequest
1 голос
/ 25 сентября 2019

У меня есть df с двумя DateTime столбцами:

entrance_date <- as.POSIXct(c("2014-03-12 08:44:18 UTC", "2015-09-16 02:56:00 UTC", "2015-10-24 08:09:11 UTC", "2016-12-11 17:17:00 UTC", "2017-08-06 18:26:00 UTC", "2018-01-29 00:00:00 UTC"))
item_date <- as.POSIXct(c("2014-04-17 08:40:10 UTC", "2015-09-16 02:56:00 UTC", "2015-11-12 13:15:00 UTC", "2016-12-16 17:10:09 UTC", "2017-08-10 04:11:00 UTC", "2018-01-29 00:00:00 UTC"))

df <- data.frame(entrance_date, item_date)
df
entrance_date           item_date
1 2014-03-12 08:44:18 2014-04-17 08:40:10
2 2015-09-16 02:56:00 2015-09-16 02:56:00
3 2015-10-24 08:09:11 2015-11-12 13:15:00
4 2016-12-11 17:17:00 2016-12-16 17:10:09
5 2017-08-06 18:26:00 2017-08-10 04:11:00
6 2018-01-29 00:00:00 2018-01-29 00:00:00

Я могу определить, какие rows имеют одинаковое значение DateTime, либо определив их положение, либо используя их логические значения.значение:

> which(df$entrance_date == df$item_date)
[1] 2 6

> df$entrance_date == df$item_date
[1] FALSE  TRUE FALSE FALSE FALSE  TRUE

Однако я бы хотел count число rows, которые имеют одинаковое значение в обоих columns.В этом случае счет должен вернуть значение 2.

Большое спасибо.

1 Ответ

2 голосов
/ 25 сентября 2019

Мы можем использовать sum, чтобы обернуть логический вектор, и он будет считать количество ИСТИН, когда он приведен к двоичному 1/0

sum(df$entrance_date == df$item_date)
#[1] 2

Если мы используем which, обернуть с помощью length

length(which(df$entrance_date == df$item_date))
...