有没有一种方法可以根据R中用逗号分隔值的列对数据进行分组?

问题描述

说有数据框A:

      build:my-toolchain --crosstool_top=//my-toolchain:toolchain
      build --config=my-toolchain

是否可以汇总B列中每个逗号分隔字母的数据? 例如,像这样获取它们的平均值:

   A  B
1  1  gr1,gr2
2  3  class1,gr1
3  4  gr2

解决方法

使用tidyr的函数separate_rows()可以轻松完成此操作:

library(tidyverse)

dat <-
  tibble(A = c(1,3,4),B = c("gr1,gr2","class1,gr1","gr2"))

dat %>%
  separate_rows(B,sep = ",") %>% 
  group_by(B) %>% 
  summarize(mean = mean(A))


# A tibble: 3 x 2
  B       mean
  <chr>  <dbl>
1 class1   3  
2 gr1      2  
3 gr2      2.5
,

base R中的一个选项,在列'B'上带有strsplit,以创建一个list,然后使用tapply,获得{ {1}}将“ A”值分组,其中该组是mean个拆分值

rep