-3

一部の基本的な 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 の単純な数学関数が (生物学者にとって) 異なって設計されているように見えるのか」ということです。

4

1 に答える 1

2

がとる 2 番目の引数meanは ですtrim。これは のリストされた引数ではありませんsum。の最初の引数sum\dotsであるため、関数は名前のない引数として入力されたすべての値の合計を計算しようとします。

meanおよびsumは汎用関数であるため、オブジェクトのクラスに応じて異なる方法でデプロイされます。

于 2016-09-20T14:49:51.343 に答える