【问题标题】:check if each group has only identical observations/values [duplicate]检查每个组是否只有相同的观察/值[重复]
【发布时间】:2021-02-17 12:11:04
【问题描述】:

如何检查唯一组是否只有相同的观察值?当每组只有相同的值(此处为 group1)时,我想要一个带有 1 的附加列(虚拟)。例如

sample <- data.frame(name = c("group1", "group1", "group1", "group2","group2", "group2"),
                     value = c(23,23,23,44,33,44))

sample <- sample %>% group_by(name) %>% mutate(identical_valuesOnly = if_else(name = value,1,0)????

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    您可以使用n_distinct 计算每组中唯一值的数量,如果每组中唯一value 的数量为1,则分配1。

    library(dplyr)
    
    sample <- sample %>%
               group_by(name) %>%
               mutate(dummy = as.integer(n_distinct(value) == 1))
    
    #   name   value dummy
    #  <chr>  <dbl> <int>
    #1 group1    23     1
    #2 group1    23     1
    #3 group1    23     1
    #4 group2    44     0
    #5 group2    33     0
    #6 group2    44     0
    

    由于您有数字数据,因此您也可以在此处使用 sdvar

    sample <- sample %>%
                 group_by(name) %>%
                 mutate(dummy = as.integer(sd(value) == 0))
                 #mutate(dummy = as.integer(var(value) == 0))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 2021-11-19
      • 2014-02-03
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多