R语言dplyr分组统计如何不区分大小写合并相同含义字段
R代码调整方案
核心解决思路:先统一Week列的大小写格式,再进行分组统计,即可将不同大小写写法的周四识别为同一类别计算均值。
修改后可运行完整代码
library(dplyr) library(stringr) Test <- structure(list(date1 = as.Date(c("2021-11-01","2021-11-01","2021-11-01","2021-11-01")), date2 = as.Date(c("2021-10-22","2021-10-22","2021-10-28","2021-10-30")), Week = c("Friday", "Friday", "Thursday", "thursday"), Category = c("FDE", "FDE", "FDE", "FDE"), time = c(4, 6, 6, 3)), class = "data.frame",row.names = c(NA, -4L)) meanTest1 <- Test %>% # 统一将Week列所有值转换为首字母大写格式 mutate(Week = str_to_title(Week)) %>% group_by(Week, Category) %>% dplyr::summarize(`mean(time)` = mean(time), .groups = "drop")
运行输出结果
> meanTest1 # A tibble: 2 × 3 Week Category `mean(time)` <chr> <chr> <dbl> 1 Friday FDE 5 2 Thursday FDE 4.5
无额外依赖的替代方案
如果不想安装加载stringr包,可改用base R自带的大小写转换函数,将上述代码中的mutate行替换为任意一种即可实现相同的合并统计效果:
- 全部转为大写:
mutate(Week = toupper(Week)) - 全部转为小写:
mutate(Week = tolower(Week))
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

