首页 > 解决方案 > 如何标记R中第一次出现的值

问题描述

我知道使用 match() 将提取变量的第一次出现,但是如何创建一个新列标记第一次出现?

例如我怎么能得到:

example <- data.frame(id = c(1,1,1,2,3,4), label = c(1,0,0,1,1,1))

提前致谢!

标签: rtidyverse

解决方案


duplicated带有in的选项base R

example$label <- +(!duplicated(example$id))

-输出

example
#  id label
#1  1     1
#2  1     0
#3  1     0
#4  2     1
#5  3     1
#6  4     1

duplicated返回一个逻辑列,对于“id”的重复元素返回 TRUE,对于非重复元素(即第一次出现)返回 FALSE。否定 ( !) 反转 TRUE -> FALSE 反之亦然,然后用+or强制它为二进制as.integer


推荐阅读