具有满足条件的元素数量的子数据

问题描述 投票:0回答:1

早上好。我想用满足一定条件的元素数量来子集一个数据框。例如:

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

非常感谢!

r dataframe conditional-statements subset subset-sum
1个回答
0
投票
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)

0
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.