R语言调用自定义h1函数报object 'Sum' not found错误如何修复
R代码错误修正方案
需修正的问题点
- 函数定义缺失左大括号:R语言中当函数包含多行代码时,必须用
{}包裹所有函数内部逻辑。原代码h1 <- function(x,n)后未添加左大括号{,导致R判定函数体仅包含Sum=0这一行代码,后续循环逻辑不属于函数内部,调用函数时函数作用域内不存在Sum变量,触发找不到对象的报错。 - 存在多余的右大括号:原代码末尾多写了一个
},会导致语法解析异常。 - 缺少返回值声明(可选优化):R默认返回函数最后一行表达式的运算结果,显式声明返回值可以提升代码可读性。
修正后代码
h1 <- function(x,n) { Sum = 0 # 循环计算等比数列求和 for (i in seq(from=0,to=n)) { Sum = Sum + x^i } return(Sum) }
调用测试
执行h1(0.3,55)会返回等比数列求和结果:1.428571,和等比数列求和公式(1 - x^(n+1))/(1-x)的计算结果一致。
内容的提问来源于stack exchange,提问作者Arkap1233
相关产品推荐
相关产品推荐

