R语言中如何将dataframe的Weekdays和Weekends列求和合并为Week列
R多列按行求和合并实现方法
基础R实现(无需额外安装包,适合新手)
如果仅需要合并指定的两列,直接对两列做逐行相加,再筛选保留所需列即可:
# 生成新列Week,存储每一行Weekdays与Weekends的和 df$Week <- df$Weekdays + df$Weekends # 筛选保留Tourism和Week两列,得到最终结果 result <- df[, c("Tourism", "Week")]
如果后续需要合并的列数较多,可以用rowSums函数批量处理,避免手动写多个列名相加:
# 选中所有需要合并的列,直接计算行和 df$Week <- rowSums(df[, c("Weekdays", "Weekends")]) result <- df[, c("Tourism", "Week")]
dplyr实现(适配tidyverse使用习惯)
如果你常用tidyverse生态的工具,可以用mutate配合求和逻辑实现,代码可读性更高:
library(dplyr) result <- df %>% # 计算两列逐行和生成新列 mutate(Week = Weekdays + Weekends) %>% # 合并多列时可以用跨列选择的写法: # mutate(Week = rowSums(across(c(Weekdays, Weekends)))) %>% # 保留所需列 select(Tourism, Week)
你提到的按行合并Profit和Visitors是对同一列的不同行求和,本次需求是对同一行的不同列求和,二者逻辑对应,只是操作维度从列切换为行,使用逐行相加或者rowSums即可直接实现。
内容的提问来源于stack exchange,提问作者Tony H
相关产品推荐
相关产品推荐

