按组计算列中每个元素的数量

戈加 戈加

我的数据框:

data<-structure(list(GROUP = c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L), 
                     col1 = c(23L, 432L, 234L, 234L, 3123L, 657L,
                              8768L, 123L,42323L), 
                     col2 = c(567L, 765L, 8678L, 46L, 35L, 24L, 76L, 
                              789L, 45L), 
                     col3 = c(1L, 3L, 5L, 7L, 8L, 0L, 8L, 7L, 3L), 
                     col4 = c("S", "S", "S", "S", "F", "F", "F", 
                              "F", "F"), 
                     col5 = c("a","a", "s", "s", "s", "s", "s", 
                              "s", "s")
               ), class = "data.frame", row.names = c(NA,-9L))

功能:

combination = list(c(2,3),c(3,4),c(5,6))
    wilcox.fun <- function(df, id_group){
      df = df[df$GROUP%in%id_group,]
      x <- function(dat) { 
        do.call(rbind, lapply(combination, function(x) {
          col1 <- dat[[x[1]]]
          col2 <- dat[[x[2]]]
          if(is.numeric(col1) && is.numeric(col2)) test <- wilcox.test(col1, col2)
          else  test <- fisher.test(col1, col2)
          data.frame(Test = sprintf('Group %s by Group %s Group',x[1],x[2]), 
                     p = test$p.value,
                     col <- paste(x[1],unique(dat[[x[1]]]),unique(table(dat[[x[1]]])),":",x[2],unique(dat[[x[2]]]),unique(table(dat[[x[2]]])))
          )
        }))
      }
      return (purrr::map_df(split(df, df$GROUP),x,.id="GROUP" ))
    }
    
    wilcox.fun(data, c(1, 2))

我想按组计算列中的每个值。

例如,对于列col4,第1组中“S”的数量=2。第2组中,“S”的数量=2。第1组中,“F”的数量=3。第2组中, “F”的数量 = 2 依此类推

我尝试使用该table函数,但它输出了太多重复组合。

托马斯正在编码

你可以试试下面的代码

lapply(
  data[-1],
  aggregate,
  data[1],
  length
)

这使

$col1
  GROUP x
1     1 5
2     2 4

$col2
  GROUP x
1     1 5
2     2 4

$col3
  GROUP x
1     1 5
2     2 4

$col4
  GROUP x
1     1 5
2     2 4

$col5
  GROUP x
1     1 5
2     2 4

或使用 table

lapply(
  data[-1],
  table,
  data$GROUP
)

$col1

        1 2
  23    1 0
  123   0 1
  234   1 1
  432   0 1
  657   0 1
  3123  1 0
  8768  1 0
  42323 1 0

$col2

       1 2
  24   0 1
  35   1 0
  45   1 0
  46   0 1
  76   1 0
  567  1 0
  765  0 1
  789  0 1
  8678 1 0

$col3

    1 2
  0 0 1
  1 1 0
  3 1 1
  5 1 0
  7 0 2
  8 2 0

$col4

    1 2
  F 3 2
  S 2 2

$col5

    1 2
  a 1 1
  s 4 3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

计算Tableau中逗号分隔列中每个元素的数量

计算每个组中重复项的数量

计算每个类中相同元素的数量

计算矩阵中每个元素的连接元素数量的算法

R按组计算基于两列的不同元素

按组计算唯一值的数量

对于数组中的每个元素,我们如何计算大于该元素的右边元素的数量?

使用dplyr按组计算每个块?

按列选择每个组中不同的项目

PyMongo 按日期计算元素数量

按子组计算一定间隔内的列中值的数量

计算每个组中的行数

计算组中的每个条件

PHP:按字符数按组计算数量

在一列中按组计算R

如何计算每个组中唯一名称的数量

如何计算每个组元素的指标?

如何使用颜色数组按顺序更改一组相同元素中每个元素的颜色

R 逐个元素计算,按组

滚动总和以按产品计算每个月组的 YTD 并使用 SQL 保存到单独的列

按受访者组为每个问题选项选择答案数量

计算PHP数组中组数组的数量

计算数组中的元素数量并为mongodb中集合的每个文档求和?

在对数据框的一列进行装箱后,如何制作一个新的数据框以计算每个箱中的元素数量?

熊猫计算列中相同元素的数量,如果数量少则将其擦除

如何计算单选按钮组的数量(按名称属性)?

如何按组计算唯一值的数量?

在 Pandas 中,如何计算多列分组后每个组的子组内的平均计数数?

计算每个bin中的值数量:Python