r语言 - 检查每组是否只有相同的观察值/值

  • 本文关键字:观察 是否 r语言 r dplyr
  • 更新时间 :
  • 英文 :


如何检查唯一组是否只有相同的观察值?当每个组(这里是group1)只有相同的值时,我希望有一个额外的列(dummy),列值为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)????

您可以使用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))

最新更新