3

誰かが MATLAB での作業に慣れ、R コードの記述に慣れるための簡潔な (ただしかなり徹底的な) チュートリアルはありますか。

R のドキュメントとチュートリアルに関する限られた経験から、R のデータ型とその操作方法に関して多くの混乱が残されています。たとえば、ベクトル、マトリックス、リスト、データ フレームなどとは何か、それらはどのように関連しているか。基本的なデータ型を明確に説明しているソースが見つからないため、言語が設計上あいまいであるかどうか疑問に思っています。

4

1 に答える 1

7

主に 1 つのプログラミング言語にしか慣れていない場合、別の方法で問題を考えることを期待し、これらの誤った期待が問題を引き起こすため、異なる動作をする別のプログラミング言語を学習しようとするのは常に困難です。他の言語のそれぞれから来た学生に適した入門ガイドを用意することは非常に困難です (「X を行うべきだと考えるでしょうが、R では Y を行うべきです」)。ただし、R はあいまいになるように設計されていないことは保証できます。

ほとんどの場合、入門ガイドを入手して、それをゆっくりと進める必要があります。最初は大変な作業でイライラしますが、それしか方法はありません。結局、それはより簡単になります。おそらく、プロセスをすぐに開始できるように、いくつかのことをお伝えできます。

  • alistは要素の順序付けられたセットです。これは任意の長さにすることができ、古いタイプのものを含めることができます。たとえば、x <- list(5, "word", TRUE).
  • avectorも要素の順序付きセットです。長さに制限はありませんが、要素はすべて同じ型である必要があります。たとえばx <- c(3,5,4)、、、。 x <- c("letter", "word", "a phrase")_x <- c(TRUE, FALSE, FALSE, TRUE)
  • amatrixはベクトルのベクトルで、すべての成分ベクトルは同じ長さとタイプです。たとえば、x <- matrix(c("a", "b", "c", "d"), ncol=2).
  • adata.frameはベクトルのリストで、すべての成分ベクトルは同じ長さですが、同じ型である必要はありません。たとえば、x <- data.frame(category=c("blue", "green"), amount=c(5, 30), condition.met=c(TRUE, FALSE)).

(コメントへの返信:)

  • 関数?c連結用です。c(c("a", "b"), c("c", "d"))、行列を作成しませんが、2 つの短いベクトルから長いベクトルを作成します。関数?cbind (列を結合する) またはrbind()(行を結合する) は、行列を作成します。
  • オブジェクトの型を出力する単一の関数を知りません。最も近いものはおそらく?class ですが、これにより、「ベクトル」が必要だと思われる場所に「整数」が表示されることがあります。mode()関連する、 、もありtypeof()ますが、探しているものとは異なります。これらの違いの詳細については、こちらこちらをご覧ください。オブジェクトが特定の型であるかどうかを確認するにはis.<specific type>()、たとえば?is.vectorを使用できます。
  • オブジェクトを特定のタイプに強制(つまり、「キャスト」) するには、 を使用できますas.vector()が、これは条件 (上記など) が満たされた場合にのみ機能します。
于 2013-03-09T16:19:56.937 に答える