dplyr按字符串匹配分组

孢子234

我有一个这样的数据框:

df <- data.frame(v1 = c('jan1', 'jan2', 'jan3', 'jan4', 'feb1', 'feb2', 'mar1', 'mar2', 'mar3'),
             v2 = rnorm(9))

我想在对数据进行分组后对其进行汇总。我希望它们按中的数字分组v1,即一组将是(jan1,feb1,mar1),另一组将是(jan2,feb2,mar2),依此类推。

我试过了,但是不起作用:

df %>% group_by(str_detect(v1, '1')) %>% summarise(meanp = mean(v2),
                                 medianp = median(v2))
马库斯

我们可以做的

library(dplyr)
df %>% 
  group_by(grp = gsub("\\D", "", v1)) %>% 
  summarise(mean_v2 = mean(v2)) # only for illustration
# A tibble: 4 x 2
#  grp   mean_v2
#  <chr>   <dbl>
#1 1      0.0635
#2 2      0.0338
#3 3     -0.130 
#4 4      1.60

group_bygsub部分创建基于可变的非字母字符分组变量v1,看?regex

数据

set.seed(1)
df <- data.frame(v1 = c('jan1', 'jan2', 'jan3', 'jan4', 'feb1', 'feb2', 'mar1', 'mar2', 'mar3'),
                 v2 = rnorm(9))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章