【问题标题】:Subsetting data with amount of elements who meet a condition [duplicate]用满足条件的元素数量子集数据[重复]
【发布时间】:2020-04-01 04:01:02
【问题描述】:

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

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

非常感谢!

【问题讨论】:

  • 我刚刚编辑了它。我想要拥有相同 X 值和相同 Y 值的元素数量,并将该数量作为数据框中的属性。
  • 所以您只想计算具有相同COLORXY 值的行数?所以在dplyr,你可以做df %>% count(COLOR, X, Y)。这就是你想要的吗?

标签: r dataframe conditional-statements subset subset-sum


【解决方案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)

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多