r语言 - 如何查找区域中是否存在值并在新列中打印"FOUND"或"MISSING"



我正在尝试执行类似于以下Excel中的函数的功能:

IF(COUNTIF(RANGE, CRITERIA), "FOUND", "MISSING")

我想在数据框中打印找到或丢失的新列。我知道在 R 中我可以使用 %in%,例如:

A$C %in C$B

查找 A 数据帧的 C 列中的值是否存在于 C 数据的 B 列中的值。但是,我不知道如何使用条件函数对所述结果进行子集化,以将找到或丢失的打印到正确行中的新列中。

下面是数据帧的示例:

A <- data.frame("C" = c(3,5,9,21,25), "D" = 1:5)
C <- data.frame("B" = c(3,6,21,22,8) , "F" = 10:14)
A$C %in% C$B
A[A$C %in% C$B,]

基于有限的信息:

lookup_list <- c(1:3)
x <- c('a','b','c')
y <- c(10, 3, 5)
df <- data.frame(x,y)
x  y
1 a 10
2 b  3
3 c  5
df <- df %>% 
mutate(status = case_when(
y %in% lookup_list ~ 'FOUND',
!y %in% lookup_list ~ 'MISSING'
))
x  y  status
1 a 10 MISSING
2 b  3   FOUND
3 c  5 MISSING

最新更新