私はR言語でのループコーディングに取り組んでおり、このコードには2つの関数が含まれています。値がradiusの場合、radius関数の代わりにperiod関数を実行する必要があります。
クラスのメモを使ってコーディングしましたが、間違っていると思います。警告は表示されませんが、コンソールで警告が表示された場合:
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)
}
}
ifandelseステートメントを完全に理解しているとは思いません。誰かが私のためにそれを説明しますか?また、forステートメントとifステートメントの違いは何ですか?
助けてくれてありがとう。