FC2ブログ

R 学習:気になる幾つかの仕様

2012-09-22 :  PCクリニック
テーマ:物理、化学、VM、Linux、IE、Firefox、Safari、IT関連。
本文の前に、
-・・・ -・-
blogramのランクインカテゴリについて、
一昨日の確定値は、
ランクの数、10、6、4、3、1、 0、1、1、0、2(42)で、換算ポイント 192pt 。
昨日の確定値は、
ランクの数、10、6、4、3、1、 1、0、1、0、2(42)で、換算ポイント 190pt 。
現在は、
ランクの数、10、6、4、3、1、 1、0、1、0、2(42)で、換算ポイント 190pt 。
・-・ - -・

さて、本文。

相変わらずの「R の学習


R の仕様で、気になる点について整理。


R の本家:「The R Project for Statistical Computing
とは異なるサイトだが、
Statistical Data Analysis」の、
Documentation for package‘base’version 2.16.0
で確認。
(使っているのは、version 2.15.1 だが)


1.文字列定義の「"」と「'」の違い

「misc」のところに、

  Quotes {base}
    Quotes

  Description
    Descriptions of the various uses of quoting in R.

  Details
    Three types of quotes are part of the syntax of R:
    single and double quotation marks and the backtick (or back quote, `).
    In addition, backslash is used to escape the following character
     inside character constants.

  Character constants
    Single and double quotes delimit character constants.
    They can be used interchangeably but double quotes are preferred
    (and character constants are printed using double quotes),
    so single quotes are normally only used to delimit character
     constants containing double quotes.

    Backslash is used to start an escape sequence
     inside character constants.
    Escaping a character not in the following table is an error.

    Single quotes need to be escaped by backslash in single-quoted
     strings, and double quotes in double-quoted strings.

とある。

つまり、「"」と「'」は同じものだが、「"」の使用を推奨する。
(プリント結果は、「"」を使っている)
「'」は、「"」を含めるときにのみ使う。

なお、いずれも、自身を含める時はバックスラッシュによるエスケープが必要。


2.パッケージロードの「library」と「require」の違い

  library {base}
    Loading and Listing of Packages

  Description
    library and require load add-on packages.

  Details
    library(package) and require(package) both load the package
     with name package.
    require is designed for use inside other functions;
     it returns FALSE and gives a warning
     (rather than an error as library() does by default)
     if the package does not exist.
    Both functions check and update the list of currently loaded packages
     and do not reload a package which is already loaded.

つまり、「library」も「require」も、
インストール済みのパッケージをロードすることについては同じもので、
既にロード済みなら再度のロードはしない。

違いは、「require」は、関数の中での使用を想定しており、
パッケージがインストールされていないときの動作が異なる。
「library」では、エラーになるが、
「require」では、ワーニングで「FALSE」を返す。


3.「#include(C言語)」や「use(Perl)」に相当するものは?

R では、「source」関数?

  source {base}
    Read R Code from a File or a Connection

  Description
    source causes R to accept its input from the named file
     or URL or connection.
    Input is read and parsed from that file until
     the end of the file is reached,
    then the parsed expressions are evaluated sequentially
     in the chosen environment.

とある。

つまり、
ファイル(更には、URLも可!)から、
スクリプトを読み込み、構文解析をし、
そして、実行する。


4.「dir」関数の結果はソート済み?

  list.files {base}
    List the Files in a Directory/Folder

  Description
    These functions produce a character vector of the names of
     files or directories in the named directory.

  Usage
    list.files(path = ".", pattern = NULL, all.files = FALSE,
      full.names = FALSE, recursive = FALSE,
      ignore.case = FALSE, include.dirs = FALSE)

    dir(path = ".", pattern = NULL, all.files = FALSE,
      full.names = FALSE, recursive = FALSE,
      ignore.case = FALSE, include.dirs = FALSE)

    list.dirs(path = ".", full.names = TRUE, recursive = TRUE)

とあり、
「list.files」「dir」「list.dirs」の3種類が有る。
そして、
   The files are sorted in alphabetical order,
    on the full path if full.names = TRUE.
とあるが、
結果は、ソート済み、ですよね。

また、
「.」や「..」は除外されているが、
ファイルもディレクトリも混ざっている。

区別するのは?・・・

「file.info」関数で、「isdir」パラメータを使う?


5.行列等の添字は1オリジン・・・

例えば
  x <- 1:10
の場合、

  x[2]
は、
2番目の 2 ですね。

0を指定したらどうなる?
  x[0]
は?
  integer(0)
となった。
変数の型が分かる。で括弧の中の数値は???

更に、負数だったら?
これは、除外指定ですね。

  x[-3]
は、
  1 2 4 5 6 7 8 9 0
の様に、
9要素のベクトルになる。


なお、実数だと?
  x[3.001] や x[3.999]
は、
結果は
3番目の 3 ですね。
つまり、
添字は整数に切り捨てられる。・・・要注意事項!!!

「要注意事項」と云えば、
「:」コロンオペレータは、最も優先順位が高い!!!

有る変数 x に対して
  1:x+1
とすることは、多分バグになる???
多分 1:(x+1) のつもりじゃないかな???


また、こんなことも注意
或る条件式:
  if(x<-5) ・・・

これは、
  if ( x < -5 ) ・・・
では無い!?!?!

  x <- 5; if ( TRUE ) ・・・
と成る!!!

だから、
  if(x<-0) ・・・
は、
  x <- 0; if ( FALSE ) ・・・
ですね。


もっと頑張ろう。


オ ソ マ ツ で し た。   <(_ _)>


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン

日記@BlogRanking    
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

人気blog Ranking



最新記事
カレンダー
06 | 2021/07 | 08
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

FC2 / i2i / Google




Google Analytics
ブックマーク