如何检查唯一组是否只有相同的观察值?当每个组(这里是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
由于您有数字数据,您也可以在这里使用sd
或var
。
sample <- sample %>%
group_by(name) %>%
mutate(dummy = as.integer(sd(value) == 0))
#mutate(dummy = as.integer(var(value) == 0))