我正在尝试执行类似于以下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