R-FAQ日本語訳(3章)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
このページでは,
R FAQ
Frequently Asked Questions on R
Version 1.7-27, 2003-07-16
ISBN 3-901167-51-X
Kurt Hornik
(http://cran.r-project.org/doc/FAQ/R-FAQ.html ) の第 3章...
- 担当者: yy
- 修正案の取扱い: みなさまからの修正案は, 下記のコメント...
- 分担翻訳の取扱い: 期限を区切って, それまでの間は担当者...
- 注意点: そのまま訳すと意味がわかりにくくなりそうな場合,...
- 注意点: 訳注は { } で囲って示します.
-RとS で、SでのMC()の定義の次の段落が尻切れではないでしょ...
-「S では, 」→「S ではつぎのようになります:」のように書き...
//#comment
----
* R-FAQ 日本語訳全体の目次
- [[R-FAQ日本語訳]] (ルート・ページ)
- [[1. 導入 (Introduction)>R-FAQ日本語訳(1章)]]
- [[2. R の基礎 (R Basics)>R-FAQ日本語訳(2章)]]
- [[3. R と S (R and S)>R-FAQ日本語訳(3章)]]
- [[4. R の Web インターフェイス (R Web Interfaces)>R-FAQ...
- [[5. R のアドオン・パッケージ (1) (R Add-On Packages)>R...
- [[5. R のアドオン・パッケージ (2-6) (R Add-On Packages)...
- [[6. R と Emacs (R and Emacs)>R-FAQ日本語訳(6章)]]
- [[7. R について雑多なこと (R Miscellanea)>R-FAQ日本語訳...
- [[8. R のプログラミング (R Programming)>R-FAQ日本語訳(8...
- [[9. R のバグ (R Bugs)>R-FAQ日本語訳(9,10章)]]
- [[10. 謝辞 (Acknowledgments)>R-FAQ日本語訳(9,10章)]]
----
* 3 R と S (R and S)
- S とは何ですか? (What is S?)
- S-PLUS とは何ですか? (What is S-PLUS?)
- R と S の違いは何ですか? (What are the differences betw...
- R にできて, S-PLUS にできないことはありますか? (Is ther...
- R-plus とは何ですか? (What is R-plus?)
** 3.1 S とは何ですか? (What is S?)
S は, データ解析およびグラフィクスのための非常に高いレヴ...
> S システムは人々がデータを分析, 可視化, 操作する方法を...
> S は, 洗練され, 広く認められた, 恒久的なソフトウエア・...
S 言語の進化は, John Chambers および共著者たちによる 4冊...
- Richard A. Becker and John M. Chambers (1984), "S. An I...
この書籍はまた "茶本 (Brown Book)" という名前で参照され, ...
- Richard A. Becker, John M. Chambers and Allan R. Wilks ...
この書籍はよく "青本 (Blue Book)" と呼ばれ, 現在 S ヴァー...
- John M. Chambers and Trevor J. Hastie (1992), "Statisti...
この書籍はまた "白本 (White Book)" と呼ばれ, S ヴァージョ...
- John M. Chambers (1998), "Programming with Data," New Y...
この "緑本 (Green Book)" は S ヴァージョン 4 について記述...
"S の進化の段階 (Stages in the Evolution of S)" に関する...
膨大な量の S 用のユーザー寄贈のコードが存在し, CMU の S R...
** 3.2 S-PLUS とは何ですか? (What is S-PLUS?)
S-PLUS は Insightful Corporation が販売する S の付加価値...
より詳しい情報については Insightful S-PLUS のページをご参...
** 3.3 R と S の違いは何ですか? (What are the differences...
私たちは, S のことを 3種類の現行の実装, つまり "エンジン"...
このセクションの残りでは, "S" は, S 言語ではなく, S エン...
- レキシカル・スコープ (Lexical scoping)
- モデル (Models)
- その他 (Others)
*** 3.3.1 レキシカル・スコープ (Lexical scoping)
S 言語の他の実装に反し, R は Scheme の評価モデルを採用し...
この違いは関数内で自由変数が生じるときに明白になります. ...
つぎの関数について考察しましょう:
cube <- function(n) {
sq <- function() n * n
n * sq()
}
S の場合, 変数 n をグローバルに定義しないかぎり, sq() は...
S> cube(2)
Error in sq(): Object "n" not found
Dumped
S> n <- 3
S> cube(2)
[1] 18
R の場合, cube() が呼び出されたときに作られた "環境" の中...
R> cube(2)
[1] 8
もっと "興味深い" 実世界の問題として, ある (連続) 分布か...
call() に関する S-PLUS の文書では基本的につぎを勧めていま...
dorder <- function(n, r, pfun, dfun) {
f <- function(x) NULL
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
PF <- call(substitute(pfun), as.name("x"))
DF <- call(substitute(dfun), as.name("x"))
f[[length(f)]] <-
call("*", con,
call("*", call("^", PF, r - 1),
call("*", call("^", call("-", 1, PF), n - r),
DF)))
f
}
かなりトリッキーですよね? このコードは, S では関数群は最...
substitute() を大いに利用して, S と R の両方で機能すると...
dorder <- function(n, r, pfun, dfun) {
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
eval(substitute(function(x) K * PF(x)^a * (1 - PF(x))...
list(PF = substitute(pfun), DF = substitute(dfun),
a = r - 1, b = n - r, K = con)))
}
(S では eval() は必要ありません).
しかしながら, R ではずっと簡単な解があります:
dorder <- function(n, r, pfun, dfun) {
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
function(x) {
con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfu...
}
}
これは "自然な" 実装であるように見えます. これが機能する...
注. あなたがほんとうに必要なものは, 関数閉包 (クロージャ...
dorder <- function(n, r, pfun, dfun) {
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
MC(function(x) {
con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfu...
},
list(con = con, pfun = pfun, dfun = dfun, r = r, n = ...
}
この閉包操作について適切な定義を与えれば, これは R と S ...
R では, MC() は単純に
MC <- function(f, env) f
となります (レキシカル・スコープ!). S ではつぎのようにな...
MC <- function(f, env = NULL) {
env <- as.list(env)
if (mode(f) != "function")
stop(paste("not a function:", f))
if (length(env) > 0 && any(names(env) == ""))
stop(paste("not all arguments are named:", env))
fargs <- if(length(f) > 1) f[1:(length(f) - 1)] else ...
fargs <- c(fargs, env)
if (any(duplicated(names(fargs))))
stop(paste("duplicated arguments:", paste(names(far...
collapse = ", "))
fbody <- f[length(f)]
cf <- c(fargs, fbody)
mode(cf) <- "function"
return(cf)
}
同様に, たいていの最適化ルーチン (あるいはゼロを発見する...
レキシカル・スコープでは, 関数閉包を用いることと, 局所的...
レキシカル・スコープはまた, さらに重要な違いを暗示します....
良くない点は, もしも R がクラッシュすると, 現在のセッショ...
注意: もしも R を Emacs の中から実行するならば (R と Emac...
*** 3.3.2 モデル (Models)
モデリングのコードにいくつかの違いがあります. たとえば,
- y を x^3 に回帰させるには, S では lm(y ~ x^3) を用いま...
- glm ファミリーのオブジェクトは R と S では異なって実装...
- オプション na.action は, R ではディフォールトで "na.omi...
- 項 (terms) オブジェクトが異なる方法で格納されます. S で...
- 最後に, R では, 切片を持たないモデルを指定するための y~...
*** 3.3.3 その他 (Others)
レキシカル・スコープとそれが及ぼす影響以外は, R は, 青本...
いくつかの既知の相違点は下記のものです.
- R では, x がリストならば, x[i] <- NULL および x[ [i] ] ...
- S では, .Data ディレクトリー内の .First および .Last と...
R では, 起動の仕組みは下記の通りです. R は最初に, システ...
必要ならば, .First() および .Last() を適当な起動プロファ...
- R では, T と F は単に TRUE と FALSE にそれぞれセットさ...
S のように予約語になっていません. したがって, ユーザーに...
- R では, dyn.load() は, (たとえば, R CMD SHLIB によって...
- R では, attach() は現在のところ, リストおよびデータ・フ...
- R では, カテゴリー (categories) は存在しません. また, S...
- R では, For() ループは必要ではなく, したがってサポート...
- R における assign() は引数 envir= を用いますが, S にお...
- 乱数発生器が異なっていて, 乱数の種は異なる長さを持ちます.
- R では整数オブジェクトを int * として C に渡しますが, S...
- R には単精度格納モードがありません. しかしながら, ヴァ...
- ディフォールトでは, ls() は, 現在の環境 (R の場合) / グ...
x <- 1; fun <- function() {y <- 1; ls()}
を与えた場合, fun() は, R では "y" を, S では (グローバル...
- R は, ゼロ長の (zero-extent) 行列 (および配列, つまり, ...
- 名前付きのベクトルは, R ではベクトルとみなされますが, S...
- R では, データ・フレームは行列とみなされません. (つまり...
- R は, 順序なしの場合にディフォールトで処理対比 (コント...
- R では, 右辺に相当する置換関数の引数は名前付きの値でな...
- S では, substitute() は, 与えられた表現式における代入の...
- S では, for() ループにおけるインデクス変数は, そのルー...
- tapply(simplify=TRUE) は, S ではベクトルを返し, R では ...
- S(-PLUS) では C ロケールを用いるのに対して, R では現在...
どの文字が英数字 (alphanumeric) であるか, また, 文字をど...
- S では, missing(arg) は arg が後から変更されても TRUE ...
- R ヴァージョン 1.3.0 から, data.frame は, (列の) 名前を...
- R では, 文字列 "NA" は文字変数における欠測値として扱わ...
- R は, 関数呼出しにおいて, 繰り返される形式的引数を認め...
また, R で不足している, あるいは不正確なコードから生じる,...
** 3.4 R にできて, S-PLUS にできないことはありますか? (Is...
R 上で実行できるほとんどのものには, ほんの少しの労力で S-...
R は, S-PLUS にないいくつかのグラフィクス機能を提供します...
** 3.5 R-plus とは何ですか? (What is R-plus?)
そのようなものはありません.
----
{ 3章おわり }
最終更新日: 2003-08-20 (水) 23:23:23
終了行:
このページでは,
R FAQ
Frequently Asked Questions on R
Version 1.7-27, 2003-07-16
ISBN 3-901167-51-X
Kurt Hornik
(http://cran.r-project.org/doc/FAQ/R-FAQ.html ) の第 3章...
- 担当者: yy
- 修正案の取扱い: みなさまからの修正案は, 下記のコメント...
- 分担翻訳の取扱い: 期限を区切って, それまでの間は担当者...
- 注意点: そのまま訳すと意味がわかりにくくなりそうな場合,...
- 注意点: 訳注は { } で囲って示します.
-RとS で、SでのMC()の定義の次の段落が尻切れではないでしょ...
-「S では, 」→「S ではつぎのようになります:」のように書き...
//#comment
----
* R-FAQ 日本語訳全体の目次
- [[R-FAQ日本語訳]] (ルート・ページ)
- [[1. 導入 (Introduction)>R-FAQ日本語訳(1章)]]
- [[2. R の基礎 (R Basics)>R-FAQ日本語訳(2章)]]
- [[3. R と S (R and S)>R-FAQ日本語訳(3章)]]
- [[4. R の Web インターフェイス (R Web Interfaces)>R-FAQ...
- [[5. R のアドオン・パッケージ (1) (R Add-On Packages)>R...
- [[5. R のアドオン・パッケージ (2-6) (R Add-On Packages)...
- [[6. R と Emacs (R and Emacs)>R-FAQ日本語訳(6章)]]
- [[7. R について雑多なこと (R Miscellanea)>R-FAQ日本語訳...
- [[8. R のプログラミング (R Programming)>R-FAQ日本語訳(8...
- [[9. R のバグ (R Bugs)>R-FAQ日本語訳(9,10章)]]
- [[10. 謝辞 (Acknowledgments)>R-FAQ日本語訳(9,10章)]]
----
* 3 R と S (R and S)
- S とは何ですか? (What is S?)
- S-PLUS とは何ですか? (What is S-PLUS?)
- R と S の違いは何ですか? (What are the differences betw...
- R にできて, S-PLUS にできないことはありますか? (Is ther...
- R-plus とは何ですか? (What is R-plus?)
** 3.1 S とは何ですか? (What is S?)
S は, データ解析およびグラフィクスのための非常に高いレヴ...
> S システムは人々がデータを分析, 可視化, 操作する方法を...
> S は, 洗練され, 広く認められた, 恒久的なソフトウエア・...
S 言語の進化は, John Chambers および共著者たちによる 4冊...
- Richard A. Becker and John M. Chambers (1984), "S. An I...
この書籍はまた "茶本 (Brown Book)" という名前で参照され, ...
- Richard A. Becker, John M. Chambers and Allan R. Wilks ...
この書籍はよく "青本 (Blue Book)" と呼ばれ, 現在 S ヴァー...
- John M. Chambers and Trevor J. Hastie (1992), "Statisti...
この書籍はまた "白本 (White Book)" と呼ばれ, S ヴァージョ...
- John M. Chambers (1998), "Programming with Data," New Y...
この "緑本 (Green Book)" は S ヴァージョン 4 について記述...
"S の進化の段階 (Stages in the Evolution of S)" に関する...
膨大な量の S 用のユーザー寄贈のコードが存在し, CMU の S R...
** 3.2 S-PLUS とは何ですか? (What is S-PLUS?)
S-PLUS は Insightful Corporation が販売する S の付加価値...
より詳しい情報については Insightful S-PLUS のページをご参...
** 3.3 R と S の違いは何ですか? (What are the differences...
私たちは, S のことを 3種類の現行の実装, つまり "エンジン"...
このセクションの残りでは, "S" は, S 言語ではなく, S エン...
- レキシカル・スコープ (Lexical scoping)
- モデル (Models)
- その他 (Others)
*** 3.3.1 レキシカル・スコープ (Lexical scoping)
S 言語の他の実装に反し, R は Scheme の評価モデルを採用し...
この違いは関数内で自由変数が生じるときに明白になります. ...
つぎの関数について考察しましょう:
cube <- function(n) {
sq <- function() n * n
n * sq()
}
S の場合, 変数 n をグローバルに定義しないかぎり, sq() は...
S> cube(2)
Error in sq(): Object "n" not found
Dumped
S> n <- 3
S> cube(2)
[1] 18
R の場合, cube() が呼び出されたときに作られた "環境" の中...
R> cube(2)
[1] 8
もっと "興味深い" 実世界の問題として, ある (連続) 分布か...
call() に関する S-PLUS の文書では基本的につぎを勧めていま...
dorder <- function(n, r, pfun, dfun) {
f <- function(x) NULL
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
PF <- call(substitute(pfun), as.name("x"))
DF <- call(substitute(dfun), as.name("x"))
f[[length(f)]] <-
call("*", con,
call("*", call("^", PF, r - 1),
call("*", call("^", call("-", 1, PF), n - r),
DF)))
f
}
かなりトリッキーですよね? このコードは, S では関数群は最...
substitute() を大いに利用して, S と R の両方で機能すると...
dorder <- function(n, r, pfun, dfun) {
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
eval(substitute(function(x) K * PF(x)^a * (1 - PF(x))...
list(PF = substitute(pfun), DF = substitute(dfun),
a = r - 1, b = n - r, K = con)))
}
(S では eval() は必要ありません).
しかしながら, R ではずっと簡単な解があります:
dorder <- function(n, r, pfun, dfun) {
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
function(x) {
con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfu...
}
}
これは "自然な" 実装であるように見えます. これが機能する...
注. あなたがほんとうに必要なものは, 関数閉包 (クロージャ...
dorder <- function(n, r, pfun, dfun) {
con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n...
MC(function(x) {
con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfu...
},
list(con = con, pfun = pfun, dfun = dfun, r = r, n = ...
}
この閉包操作について適切な定義を与えれば, これは R と S ...
R では, MC() は単純に
MC <- function(f, env) f
となります (レキシカル・スコープ!). S ではつぎのようにな...
MC <- function(f, env = NULL) {
env <- as.list(env)
if (mode(f) != "function")
stop(paste("not a function:", f))
if (length(env) > 0 && any(names(env) == ""))
stop(paste("not all arguments are named:", env))
fargs <- if(length(f) > 1) f[1:(length(f) - 1)] else ...
fargs <- c(fargs, env)
if (any(duplicated(names(fargs))))
stop(paste("duplicated arguments:", paste(names(far...
collapse = ", "))
fbody <- f[length(f)]
cf <- c(fargs, fbody)
mode(cf) <- "function"
return(cf)
}
同様に, たいていの最適化ルーチン (あるいはゼロを発見する...
レキシカル・スコープでは, 関数閉包を用いることと, 局所的...
レキシカル・スコープはまた, さらに重要な違いを暗示します....
良くない点は, もしも R がクラッシュすると, 現在のセッショ...
注意: もしも R を Emacs の中から実行するならば (R と Emac...
*** 3.3.2 モデル (Models)
モデリングのコードにいくつかの違いがあります. たとえば,
- y を x^3 に回帰させるには, S では lm(y ~ x^3) を用いま...
- glm ファミリーのオブジェクトは R と S では異なって実装...
- オプション na.action は, R ではディフォールトで "na.omi...
- 項 (terms) オブジェクトが異なる方法で格納されます. S で...
- 最後に, R では, 切片を持たないモデルを指定するための y~...
*** 3.3.3 その他 (Others)
レキシカル・スコープとそれが及ぼす影響以外は, R は, 青本...
いくつかの既知の相違点は下記のものです.
- R では, x がリストならば, x[i] <- NULL および x[ [i] ] ...
- S では, .Data ディレクトリー内の .First および .Last と...
R では, 起動の仕組みは下記の通りです. R は最初に, システ...
必要ならば, .First() および .Last() を適当な起動プロファ...
- R では, T と F は単に TRUE と FALSE にそれぞれセットさ...
S のように予約語になっていません. したがって, ユーザーに...
- R では, dyn.load() は, (たとえば, R CMD SHLIB によって...
- R では, attach() は現在のところ, リストおよびデータ・フ...
- R では, カテゴリー (categories) は存在しません. また, S...
- R では, For() ループは必要ではなく, したがってサポート...
- R における assign() は引数 envir= を用いますが, S にお...
- 乱数発生器が異なっていて, 乱数の種は異なる長さを持ちます.
- R では整数オブジェクトを int * として C に渡しますが, S...
- R には単精度格納モードがありません. しかしながら, ヴァ...
- ディフォールトでは, ls() は, 現在の環境 (R の場合) / グ...
x <- 1; fun <- function() {y <- 1; ls()}
を与えた場合, fun() は, R では "y" を, S では (グローバル...
- R は, ゼロ長の (zero-extent) 行列 (および配列, つまり, ...
- 名前付きのベクトルは, R ではベクトルとみなされますが, S...
- R では, データ・フレームは行列とみなされません. (つまり...
- R は, 順序なしの場合にディフォールトで処理対比 (コント...
- R では, 右辺に相当する置換関数の引数は名前付きの値でな...
- S では, substitute() は, 与えられた表現式における代入の...
- S では, for() ループにおけるインデクス変数は, そのルー...
- tapply(simplify=TRUE) は, S ではベクトルを返し, R では ...
- S(-PLUS) では C ロケールを用いるのに対して, R では現在...
どの文字が英数字 (alphanumeric) であるか, また, 文字をど...
- S では, missing(arg) は arg が後から変更されても TRUE ...
- R ヴァージョン 1.3.0 から, data.frame は, (列の) 名前を...
- R では, 文字列 "NA" は文字変数における欠測値として扱わ...
- R は, 関数呼出しにおいて, 繰り返される形式的引数を認め...
また, R で不足している, あるいは不正確なコードから生じる,...
** 3.4 R にできて, S-PLUS にできないことはありますか? (Is...
R 上で実行できるほとんどのものには, ほんの少しの労力で S-...
R は, S-PLUS にないいくつかのグラフィクス機能を提供します...
** 3.5 R-plus とは何ですか? (What is R-plus?)
そのようなものはありません.
----
{ 3章おわり }
最終更新日: 2003-08-20 (水) 23:23:23
ページ名: