【发布时间】:2021-02-14 16:07:30
【问题描述】:
我正在尝试更好地理解函数并在网上找到了一个示例,但无法使其正常工作。 我想解方程 a,并有两个参数 v 和 r。 v = 10,r = 3。这是我的代码。我错过了什么?感谢您的见解。
solve <- function(r=3,v=10) {
a <- pi*r*(sqrt(r^2+(9*v^2)/pi^2*r^4))
}
return(a)
基于输入。这是更新的代码。但看起来结果不准确。
solve <- function(r,v){
a <- pi*r*(sqrt(r^2+(9*v^2)/pi^2*r^4))
return(a)
}
solve(3,10)
R 给我的结果是 810.4933。但是示例显示结果是 29.9906。 下面是 A 的公式: enter image description here
【问题讨论】:
-
return(a)需要在花括号内{ ... } -
@G5W 是对的,尽管总是假设赋值操作的返回值返回整个数据集可能是不好的做法;例如,如果它是一个子集赋值(例如,
a[is.na(a)] <- -42计数相同,它不会返回所有a)。我建议使最后一个表达式完全符合您想要返回的内容(即此处为a),也可以选择使用return(a)。 -
谢谢。我修改了我的代码。它看起来像它的工作。但结果与网上的例子不符。它应该是 29,9906,但我得到的是 810.4933。求解
-
如果您也更新问题中的代码,这将有所帮助 (edit)。当此处显示的代码已知错误但未更正时,很难提供帮助:我们无法始终知道您认为自己所做的和实际所做的是否相同。 (仅供参考,除了 cmets 不能很好地格式化大数据或代码这一事实之外,cmets 很容易被读者跳过和/或被界面隐藏。谢谢。)