一部の基本的な R 関数が、それらへの生データ入力とベクトルに対して異なる動作をする理由について 、基礎となるプログラミング ロジックがあるかどうか疑問に思っていました。
たとえば、これを行うと
mean(1,2,3)
正しい答えが得られず、エラーも発生しません
しかし、私がこれを行う場合
sum(1,2,3)
適切な構文は次のようになると思いますが、正しい答えが得られますsum(c(1,2,3))
そして、私がこれを行うと
sd(1,2,3)
エラーが発生するError in sd(1, 2, 3) : unused argument (3)
これらのさまざまな動作の根底にあるプログラミング ロジックがあるとすれば、それが何であるかに興味があります。(ソースコードを調べれば、動作が異なる理由を正確に理解できると確信していますが、コードがそのように記述された理由があるかどうかを知りたいです)。
実際には、私は基本的な R クラスを教えており、生徒になぜそのように機能するのかを説明したいと考えています。彼らは私が「R はそのように機能し、R と一緒に生活し、物事を常にベクトルに入れて生活を楽にする方法です」と言うことに少しうんざりしています。
編集: 強調するために一部のセクションを太字にしました。 私の質問は主にソフトウェア設計に関するものであり、これらの特定の機能がどのように動作するか、またはそれらの正確な動作を決定する方法ではありません。つまり、「これらの関数が受け入れる引数」ではなく、「なぜ R の単純な数学関数が (生物学者にとって) 異なって設計されているように見えるのか」ということです。