You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用mutate()函数创建多列求和的新列?(R语言新手求助)

解决方法:用mutate生成每行宾客总数列

你遇到的错误是因为误用了sum()函数——sum(adults, children, babies)会把三列所有数值汇总成一个单一总和,而mutate()需要为数据框的每一行生成对应的值,所以长度不匹配导致报错。

以下是两种适合新手的基础解法:

解法1:直接列元素相加(最直观)

先确保加载dplyr包,然后直接对每行的三列数值做加法:

# 先安装/加载dplyr包(如果还没装的话)
install.packages("dplyr")
library(dplyr)

# 生成guests列
bookings_df <- bookings_df %>%
  mutate(guests = adults + children + babies)

这种方式和手动计算每行宾客数的逻辑完全一致,适合理解基础运算逻辑。

解法2:用rowSums函数(适合多列场景)

如果之后需要计算更多列的行总和,用rowSums()更高效,还能处理缺失值:

library(dplyr)

bookings_df <- bookings_df %>%
  mutate(guests = rowSums(select(., adults, children, babies), na.rm = TRUE))
  • select(., adults, children, babies):选中需要求和的三列
  • na.rm = TRUE:如果数据里有缺失值(NA),会自动忽略,避免结果变成NA

额外注意

  • 确认列名拼写完全正确,比如有没有把children写成child之类的错误
  • 运行代码前确保bookings_df是正确加载到R中的数据框

内容的提问来源于stack exchange,提问作者G. R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:25:35