R语言编写返回数学表达式结果的数值向量函数出错如何解决?
原代码的问题
- 缺少R函数定义的核心语法:R中定义函数必须遵循
函数名 <- function(参数) {函数体}的结构,你直接写my_numeric_vector()是调用函数的写法,运行时会直接报错找不到该对象。 - 函数体没有用大括号
{}包裹,语法结构不完整,R无法识别哪些代码属于该函数的执行逻辑。 return用法错误:R的return必须用括号包裹要返回的对象,且你写的return my_numeric_vector(x)是递归调用函数本身,会陷入无限循环最终报错,正确写法是直接返回你计算好的向量即可。
正确实现代码
你要的功能可以用以下代码实现:
# 定义函数 my_numeric_vector <- function() { # 计算指定表达式,保留11位小数匹配要求的输出格式 res <- round(c(exp(pi/3), cos(pi/6)), 11) return(res) } # 调用函数 my_numeric_vector()
运行后输出结果为:
[1] 2.84965390823 0.86602540378
如果不需要固定小数位数,去掉round()函数即可,R会按默认精度输出结果。
内容的提问来源于stack exchange,提问作者PythonDaniel
相关产品推荐
相关产品推荐

