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

R中如何修改自定义函数以支持传入过滤后的dataframe计算数位和

R函数适配任意数据框计算解决方案

原有函数问题点

  • 函数参数未被实际使用,内部硬编码读取全局环境的df,导致传入过滤后的子集不生效
  • 第二位数字提取逻辑错误,substring的起止位置误写为1,1,实际应该取2,2
  • 原参数名sum和R内置求和函数重名,容易引发命名冲突

修正后的函数代码

sumOfNumbers <- function(data) {
  # 提取第一位数字求和
  firstNumber <- sum(as.numeric(substring(data$score, 1, 1)))
  # 提取第二位数字求和
  secondNumber <- sum(as.numeric(substring(data$score, 2, 2)))
  # 返回带命名的结果,可读性更强
  return(c(first_sum = firstNumber, second_sum = secondNumber))
}

调用测试

全量数据测试

sumOfNumbers(df)

返回第一位总和16、第二位总和6,符合全量计算预期。

2020年子集测试

year2020 <- subset(df, year == 2020)
sumOfNumbers(year2020)

返回结果:first_sum=6、second_sum=1,和预期结果完全一致。

内容的提问来源于stack exchange,提问作者user15288243

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:36:04