使用满足条件的元素数量对数据进行子集化

Subsetting data with amount of elements who meet a condition

早上好。我想用满足特定条件的元素数量对数据框进行子集化。例如:

COLOR   X    Y
RED     0    1
RED     0    1
WHITE   3    1

我想要另一个数据框,其中包含具有相同 X 值和相同 Y 值的元素数量,但我不知道如何构建它。

COLOR   X    Y   AMOUNT
RED     0    1   2
WHITE   3    1   1

非常感谢!

data.frame(df[!duplicated(df),],AMOUNT=as.vector(table(df$COLOR)))

给予,

  COLOR X Y AMOUNT
1   RED 0 1      2
3 WHITE 3 1      1

数据:

df  <- read.table(text="COLOR   X    Y
RED     0    1
RED     0    1
WHITE   3    1",header=T,stringsAsFactors=FALSE)
df %>% 
  group_by(X, Y) %>% 
  mutate(AMOUNT = n()) %>% 
  distinct(X, Y, .keep_all = T)

# A tibble: 2 x 4
# Groups:   X, Y [2]
  COLOR     X     Y AMOUNT
  <chr> <int> <int>  <int>
1 RED       0     1      2
2 WHITE     3     1      1