Home > other >  R, use newer data to update list
R, use newer data to update list

Time:01-24

This question is very similar to enter image description here

CodePudding user response:

Here, a join would be enough

library(data.table)
setDT(df2)[as.data.table(df1), status := i.status, on = .(protocol_no)]

Or use rows_upsert and use the same code in the other post

library(dplyr)
library(tidyr)
rows_upsert(df2, df1) %>%
  fill(record_id) %>% 
  mutate(record_id = record_id    (rowid(record_id) - 1))

-output

  record_id protocol_no     status form_1_complete
1        11      study1        New               0
2        12      study2       Open               0
3        13      study3     Closed               0
4        14      study4        New               0
5        15      study5 PI signoff               0
6        16      study6     Closed               0
7        17      study7       Open              NA
  •  Tags:  
  • r
  • Related