我正在使用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