【问题标题】:count the number of distinct variables in a group计算组中不同变量的数量
【发布时间】:2017-03-17 19:25:01
【问题描述】:

我有一个这样的数据框:

df <- data.frame(
  ID = c('123','124','125','126'),
  Group = c('A', 'A', 'B', 'B'),
  V1 = c(1,2,1,0),
  V2 = c(0,0,1,0),
  V3 = c(1,1,0,3))

返回:

    ID Group V1 V2 V3
1 123     A  1  0  1
2 124     A  2  0  1
3 125     B  1  1  0
4 126     B  0  0  3

我想返回一个表来指示变量是否在组中表示:

Group V1 V2 V3
A     1  0  1
B     1  1  1

为了计算每组中不同变量的数量。

【问题讨论】:

  • 您可以使用countn_distinct。问题不清楚
  • length(unique(mtcarts$cyl))
  • imo 很清楚;如果 OP 证明不是这样,我将重新打开
  • 为澄清而编辑
  • 您只是想查看该组的某些成员是否在变量上不等于 0?

标签: r tidyverse


【解决方案1】:

我们可以通过base R 做到这一点

aggregate(.~Group, df[-1], function(x) as.integer(sum(x)>0))
#  Group V1 V2 V3
#1     A  1  0  1
#2     B  1  1  1

或者使用来自base Rrowsum

+(rowsum(df[-(1:2)], df$Group)>0)
#   V1 V2 V3
#A  1  0  1
#B  1  1  1

或者用by 来自base R

+(do.call(rbind, by(df[3:5], df['Group'], FUN = colSums))>0)
#   V1 V2 V3
#A  1  0  1
#B  1  1  1

【讨论】:

    【解决方案2】:

    你试过了吗

    unique(group_by(mtcars,cyl)$cyl).  
    
    Output:[1] 6 4 8
    

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2020-09-01
      • 1970-01-01
      • 2016-02-14
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多