R语言:if和else语句(循环)

4

我正在使用R语言编写循环代码,该代码涉及两个函数。如果值是半径,则应运行周期函数而不是半径函数,依此类推。

我根据课堂笔记编写了代码,但我认为这样是错误的。我没有收到任何警告,但如果在控制台上执行:

R<-98
orbit(R)

我会收到这条消息:
Error in orbit(R) : attempt to apply non-function

这是我的函数代码:

# Two functions: period and radius
# If a value you input is a period (in minutes), radius function should be used (radius(R))
# If a value you input is a radius (in km), period function should be used (period(R))
#   R is radius in km or period in minutes


orbit <- function(R){
    G <-6.673*10^-11
    M <- 5.972*10^24 # in kg

    if(R == 98){
            omega <- 2*pi/R # pr is period for one rotation

            Radi <- (G*M/omega^3)(1/3)
            print(Radi)
        }
    else {

        Peri <- 2*pi*sqrt(R^3/G*M)
        print(Peri)

    }

}

我不确定自己是否完全理解if和else语句。有人能为我解释一下吗?另外,for语句和if语句有什么区别?

感谢所有帮助。


这行代码缺少一个 *Radi <- (G*M/omega^3)(1/3) - joran
1个回答

5
这行代码存在问题。
Radi <- (G*M/omega^3)*(1/3)

您是否遗漏了*操作?

if/else语句允许程序根据某些条件决定执行哪些代码。就像在您的代码中一样,您有两个代码块,第一个是:

omega <- 2*pi/R # pr is period for one rotation
Radi <- (G*M/omega^3)(1/3)
print(Radi)

如果某个条件成立,即 R == 98,则执行你想要执行的代码块,否则执行其他代码块。

for语句用于重复执行多次代码块。比如说你想打印出 1-100 的数字,写 print(1)print(2)……一直到 print(100) 是不现实的!

你可以使用简单的 for 循环来实现,例如:

for(i in 1:100){
   print(i)
}

非常感谢您的帮助。这很有意义! - user87205

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接