Мы можем использовать data.table
объединение, чтобы заменить 'Status' на 'active', присоединив on
к 'UID'
library(data.table)
setDT(MainDF)[NewDFtoAdd, Status := "active", on = .(UID)]
MainDF
# UID Status Gender SaleType
#1: 136273 active M Repair
#2: 182732 inactive F Product
#3: 298372 quit F Repair
#4: 283715 active M Product
Или используя base R
i1 <- MainDF$UID %in% NewDFtoAdd$UID
MainDF$UID[i1] <- "active"
ПРИМЕЧАНИЕ. Это дает ожидаемый результат.
данные
MainDF <- structure(list(UID = c(136273L, 182732L, 298372L, 283715L), Status = c("inactive",
"inactive", "quit", "inactive"), Gender = c("M", "F", "F", "M"
), SaleType = c("Repair", "Product", "Repair", "Product")), class = "data.frame", row.names = c(NA,
-4L))
NewDFtoAdd <- structure(list(UID = c(136273L, 293827L, 283715L, 167643L), Gender = c("M",
"F", "F", "M")), class = "data.frame", row.names = c(NA, -4L))