mikeo_410


 R Extentions関連

DLLのロード関連

  「ベクターにアップしたプログラム」「R言語ExtentionsをC#で」で作成したDLLで試したもの。
  ClrEntryは、R0Ex.dllがエクスポートしているCの関数の名前です。

  1. ロード
    dyn.load("R0Ex.dll")
  2. アンロード
    dyn.unload("R0Ex.dll")
  3. ロードされているDLLの一覧
    getLoadedDLLs()
  4. DLLがロードされているか
    「C関数のエントリが登録されているか」で判定
  5. C関数のエントリが登録されているか
    is.loaded("ClrEntry")
  6. C関数の情報
    getNativeSymbolInfo("ClrEntry")

  7. getDLLRegisteredRoutines("stats")
    getDLLRegisteredRoutines(dlls[["base"]])

引数の変換

  Cの関数に渡す変数の型を揃える。

  1. as.list(x)
    SEXP形式のリストに変換される
  2. as.character(x)
    文字列の配列に変換される
  3. as.interger(x)
    CのInt32[]に変換される
  4. as.numeric(x)
    Cのdouble[]に変換される

引数の有無

  missing(arg1) は、arg1が未定義ならTRUEを返す。

引数が空

  is.null(x) は、x が NULL ならTRUEを返す。

引数の型判定

  1. is.integer(x)
  2. is.numeric(x)
  3. is.logical(x)
  4. is.character(x)
  5. is.complex(x)

非数値判定

  1. is.na(x)
    1. > d <- c(123,NA,NaN,Inf)
    2. > is.na(d)
    3. [1] FALSE  TRUE  TRUE FALSE
  2. is.nan(x)
    1. > d <- c(123,NA,NaN,Inf)
    2. > is.nan(d)
    3. [1] FALSE FALSE  TRUE FALSE
  3. is.infinite(x)
    1. > d <- c(123,NA,NaN,Inf)
    2. > is.infinite(d)
    3. [1] FALSE FALSE FALSE  TRUE
  4. is.finite(x)
    1. > d <- c(123,NA,NaN,Inf)
    2. > is.finite(d)
    3. [1]  TRUE FALSE FALSE FALSE
  5. complete.cases(x)
    1. > d <- c(123,NA,NaN,Inf)
    2. > complete.cases(d)
    3. [1]  TRUE FALSE FALSE  TRUE

mikeo_410@hotmail.com