首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-检查两个不同数据帧中的相同值

R-检查两个不同数据帧中的相同值
EN

Stack Overflow用户
提问于 2020-11-02 22:29:27
回答 2查看 40关注 0票数 0

我有一个数据框( data ),看起来像这样。COVID测试数据帧:

代码语言:javascript
复制
> ID        DATE           Result
  1        1/11/2020       POSITIVE
  2        1/11/2020       NEGATIVE
  2        2/11/2020       POSITIVE
  3        2/11/2020       POSITIVE
  3        3/11/2020       NEGATIVE

然后我有了另一个数据框(data_new),它看起来像这样,这只是积极的结果

代码语言:javascript
复制
> ID        DATE           Result
  1        1/11/2020       POSITIVE
  2        2/11/2020       POSITIVE
  3        2/11/2020       POSITIVE

原始数据集非常大。我的愿望是找到一个代码,它将接受"data_new“,并回顾”数据“,以找出相同的ID是否出现在”数据“中,并在结果为阳性的日期之前进行了测试。

这有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2020-11-02 22:40:08

这样做是可行的:

代码语言:javascript
复制
library(dplyr)
library(tidyr)
df2 %>% left_join(df1, by = 'ID') %>% filter((DATE.x > DATE.y) & Result.x == 'POSITIVE')
# A tibble: 1 x 5
     ID DATE.x     Result.x DATE.y     Result.y
  <dbl> <date>     <chr>    <date>     <chr>   
1     2 2020-11-02 POSITIVE 2020-11-01 NEGATIVE

使用的数据:

代码语言:javascript
复制
df1
# A tibble: 5 x 3
     ID DATE       Result  
  <dbl> <date>     <chr>   
1     1 2020-11-01 POSITIVE
2     2 2020-11-01 NEGATIVE
3     2 2020-11-02 POSITIVE
4     3 2020-11-02 POSITIVE
5     3 2020-11-03 NEGATIVE
df2
# A tibble: 3 x 3
     ID DATE       Result  
  <dbl> <date>     <chr>   
1     1 2020-11-01 POSITIVE
2     2 2020-11-02 POSITIVE
3     3 2020-11-02 POSITIVE
票数 1
EN

Stack Overflow用户

发布于 2020-11-02 22:43:15

由于您有相似的列名,因此我建议在连接数据之前重命名列名。对于每个ID,您可以检查他们是否在阳性结果日期之前进行了测试。

代码语言:javascript
复制
library(dplyr)

df1 %>% 
  rename(test_date = DATE) %>%
  left_join(df2 %>% 
              rename(positive_date = DATE, final_result = Result), by = 'ID') %>%
  mutate(across(c(test_date, positive_date), lubridate::dmy)) %>%
  group_by(ID) %>%
  summarise(test_before = any(first(positive_date) > test_date))

#    ID test_before
#  <int> <lgl>      
#1     1 FALSE      
#2     2 TRUE       
#3     3 FALSE      
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64647457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档