繁体   English   中英

r - 检查值在 dataframe 列中是否唯一

[英]r - check if value is unique in dataframe column

我正在我的 dataframe 中创建一个新列 (Flag),它根据另一列 (Number) 识别唯一或重复的数字。 我曾尝试使用重复的 function,但这只会将重复的值标识为重复值,而将原始值保留为非重复值(如下面的编号 100001 所示):

Number    Flag
100000   unique
100001   unique
100002   unique
100001   duplicate
100003   unique

如果某个值在列中多次出现,我如何让我的 if-else 语句将它识别为重复值,如下所示:

Number    Flag
100000   unique
100001   duplicate
100002   unique
100001   duplicate
100003   unique

一种方法是group_by(Number)并检查每个组是否有多个观察值n() > 1

我们可以在ifelse语句中使用它来创建所述Flag

library(dplyr)

dat <- tibble(Number = c(
        100000,
        100001, 
        100002, 
        100001, 
        100003))

dat %>% 
  group_by(Number) %>% 
  mutate(Flag = ifelse(n() > 1,
                       "duplicate",
                       "unique")) %>% 
  ungroup()

#> # A tibble: 5 × 2
#>   Number Flag     
#>    <dbl> <chr>    
#> 1 100000 unique   
#> 2 100001 duplicate
#> 3 100002 unique   
#> 4 100001 duplicate
#> 5 100003 unique

reprex package (v0.3.0) 创建于 2022-10-02

unique() function 有助于构建唯一集,然后使用if...else...语句来识别重复值。

这是一个基本的 R 方法。 您可以使用duplicated ,但也可以包括第二个duplicated ,其中重复也被认为是反向的(使用 fromLast)。

dat$Flag <- ifelse(
  duplicated(dat$Number) | duplicated(dat$Number, fromLast = TRUE),
  "duplicate",
  "unique"
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM