R语言如何实现表格星期列按周一至周日顺序排序
解决方案
weekdays()函数返回的星期值是字符类型,dplyr分组聚合时默认按字符字典规则排序,无法自动匹配周一到周日的自然时序。只要在生成星期字段时将其转换为指定水平顺序的因子,后续所有操作都会自动遵循正确的星期顺序。
修正后完整代码
若R系统语言为中文,weekdays()返回中文星期名,代码如下:
Daily_intensity %>% mutate(weekdays = factor( weekdays(date), levels = c("星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日") )) %>% group_by(weekdays) %>% summarise(minutes_fairly_very_active = sum(fairlyactiveminutes + veryactiveminutes))
若R系统语言为英文,weekdays()返回英文星期名,将levels参数替换为对应英文顺序即可:levels = c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
注意
不推荐在汇总步骤后用arrange()做硬编码排序,提前将星期字段转为有序因子的方式复用性更强,后续绘图、做交叉分析时不会重复出现顺序错乱问题。
内容的提问来源于stack exchange,提问作者Sahil Kumar
相关产品推荐
相关产品推荐

