R for Windows FAQ
 Version for rw1080
 B. D. Ripley
 http://www.stats.ox.ac.uk/pub/R/rw-FAQ.html
の日本語訳です.

----

* 1 導入 (Introduction)

この FAQ は, R の Windows への移植に関するもので, そのヴァージョンに特有の機能・特徴を記述しています. メインの R FAQ は下記で見つけることができます:
この FAQ は, R の Windows への移植に関するもので, そのバージョンに特有の機能・特徴を記述しています. メインの R FAQ は下記で見つけることができます:
  http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
{ その日本語訳は: [[R-FAQ日本語訳]] (Version 1.7-27) }

ここに書かれた情報は, Windows 版 R の最近のヴァージョン (1.8.0 以降) にのみ適用されます. 現在のヴァージョンは, (公式にではありませんが) よく rw1080 のように呼ばれています.
ここに書かれた情報は, Windows 版 R の最近のバージョン (1.8.0 以降) にのみ適用されます. 現在のバージョンは, (公式にではありませんが) よく rw1080 のように呼ばれています.

* 2 インストールおよび用法 (Installation and Usage)

** 2.1 最新版はどこで見つけることができますか? (Where can I find the latest version?)

適当な CRAN サイトにアクセスして (サイトのリストについては http://cran.r-project.org/mirrors.html を参照), bin/windows/base ディレクトリーで, 必要なファイルを収集してください. このディストリビューションには 2つのヴァージョンがあります.
適当な CRAN サイトにアクセスして (サイトのリストについては http://cran.r-project.org/mirrors.html を参照), bin/windows/base ディレクトリーで, 必要なファイルを収集してください. このディストリビューションには 2つのバージョンがあります.

1) rw1080.exe は約 21Mb あります. 
これにはすべてのコンポーネントが含まれていて, あなたがお好きなように完全なインストールが可能です. 

2) ディレクトリー miniR には, miniR.exe および 8個の miniR-?.bin ファイルが含まれています. miniR.exe および miniR-1.bin は 1つのフロッピーに入れることができ, 残りの miniR-?.bin はそれぞれ 1つずつのフロッピーに入れることができます. これは小規模インストールで, テキスト形式と Compiled HTML 形式のヘルプ・ファイル, および
PDF 形式の「R 入門 (An Introduction to R)」と「データのインポート/エクスポート (Data Import/Export)」マニュアルを含みます. このヴァージョンには tcltk のサポートはありません.
PDF 形式の「R 入門 (An Introduction to R)」と「データのインポート/エクスポート (Data Import/Export)」マニュアルを含みます. このバージョンには tcltk のサポートはありません.

** 2.2 Windows 版 R をインストールするには? (How do I install R for Windows?)

R の動作環境として Windows 95/98/ME/NT4/2000/XP が必要です. Windows 3.11+win32s では動作しません. ファイル・システムは (おそらく, ある種のネットワーク・マウントされたシステムの場合を除いて) ロング・ファイル名が使用できる必要があります.

ソースからパッケージを構築したい場合は, スペースを含まないインストール・パスを選ぶことをお勧めします. (スペースを含むパスを用いてもおそらく動作すると思われますが, あまりテストされていません.)

rw1080.exe あるいは miniR.exe を用いるには. そのアイコンをダブルクリックして, 指示に従うだけでインストールできます. このように R をインストールした場合は, コントロール・パネルあるいはスタート・メニュー(注) から, その R をアンインストールすることができます. 
注 (インストール時に R 用のグループを作らないようにしていなければ).

R 用の作業ディレクトリーを選んでください. マニュアルでインストールした場合は, デスクトップかスタート・メニューのファイル・ツリーどこかに rw1080?bin?Rgui.exe へのショートカットを作ってください. そのショートカットを右クリックし, プロパティ... を選択し, 「作業フォルダ (`Start in')」フィールド内の作業ディレクトリーを変更してください.

また, コマンド・ライン引数を, 「リンク先 (Target)」フィールドの末尾に (ダブルクォートで囲まれている場合は, 閉じダブルクォートの後ろに) 追加することもできます (たとえば, --sdi --max-mem-size=200M).

環境変数も「リンク先 (Target)」フィールドの末尾に設定することができます (たとえば, R_LIBS=p:/myRlib).

** 2.3 インストールをカスタマイズすることは可能でしょうか? (Can I customize the installation?)

インストールをカスタマイズする通常の方法は, 表示されるウィザードから選択することです. しかし, システム管理者は R をスクリプトからインストールしたいかもしれません. 下記のコマンド・ラインのフラグはどちらのインストーラーでも利用することができます.

:/SILENT|インストールの進捗状況ウィンドウとエラー・メッセージのみ表示します.
:/VERYSILENT|エラー・メッセージのみ表示します.
:/DIR="x:?dirname"|デフォールトのインストール・ディレクトリーを設定します.
:/GROUP="folder name"|デフォールトのスタート・メニューのグループ名を設定します.
:/COMPONENTS="comma separated list of component names"|コンポーネントの初期リストを設定します. これは, (コンポーネント main, chtml, html, latex, manuals, devel および tcl を持つ) rw1080.exe でのみ有用です.

下記を用いると, インストールに用いた設定をファイルに保存し, 後でリロードすることも可能です.

:/SAVEINF="filename"|諸設定を指定のファイルに保存します. ファイル名にスペースを含む場合はクォートで囲むことを忘れないでください.
:/LOADINF="filename"|コマンド・ラインをチェックした後で, 指定のファイルから諸設定をロードします.

インストール成功は終了コード 0 になります. 不成功の場合, 終了コードは 1, 2, 3, 4 あるいは 5 になります. 詳細は Inno Setup 3 (http://jrsoftware.org/isinfo.php ) のヘルプを参照してください.

** 2.4 R を起動するには? (How do I run it?)

インストール時に作成したショートカットをダブルクリックするだけです.

別のプロジェクト {作業ディレクトリー} で開始したい場合は, 新しいショートカットを作るか, あるいは既存のショートカットを使って, プロパティの「作業フォルダ (`Start in')」フィールドを変更してください.

(たとえば, `MS-DOS window' (Windows 9x/ME), 「コマンド・プロンプト (`Command Prompt')」 (Windows 2000/XP), あるいは tcsh や bash といった Unix シェルの移植等の) 何らかのシェルのコマンド・ラインから R を起動することもできます. ショートカットの「リンク先 (Target)」フィールドで指定できる設定を, コマンド・ラインにも指定することができます. 開始ディレクトリーは, そのシェルでのカレント・ディレクトリーになります.

** 2.5 R をアンインストールするには? (How do I UNinstall R?)

通常は, スタート・メニューの R グループ内にある「Uninstall R <version>」を実行するか, コントロール・パネルの「プログラムの追加と削除 (Add/Remove Programs)」を実行してください. もしも, スタート・メニューやコントロール・パネルの「プログラムの追加と削除」に該当する項目がなかったり, {システムに複数のヴァージョンの R がインストールされていて, その中の} 古いヴァージョンを削除したい場合は, R のインストール先ディレクトリーのトップ・レヴェルにある unins000.exe を実行してください. (R グループ内には, インストールされた各ヴァージョンについてそれぞれの uninstall 項目が存在するはずです.)
通常は, スタート・メニューの R グループ内にある「Uninstall R <version>」を実行するか, コントロール・パネルの「プログラムの追加と削除 (Add/Remove Programs)」を実行してください. もしも, スタート・メニューやコントロール・パネルの「プログラムの追加と削除」に該当する項目がなかったり, {システムに複数のバージョンの R がインストールされていて, その中の} 古いバージョンを削除したい場合は, R のインストール先ディレクトリーのトップ・レベルにある unins000.exe を実行してください. (R グループ内には, インストールされた各バージョンについてそれぞれの uninstall 項目が存在するはずです.)

R のアンインストールは, 初期インストールから存在するファイルのみ削除し, (たとえば) あなたが後からインストールしたパッケージ類は削除しません.

他のどの方法でもうまくいかなかった場合は, R がインストールされていたディレクトリーをまるごと削除するという方法もあります.

** 2.6 アップグレードするための最良の方法は? (What's the best way to upgrade?)

これは好みの問題になります. 大部分の人々にとって最良の方法とは, 既存の R をアンインストール (上記参照) して, 新しいヴァージョンをインストールし, 個別にインストールしたパッケージ類があればそれらを新しいインストール先のライブラリー・フォルダーにコピーし, 新しい R 上で update.packages() を実行し (あるいは, Packages メニューから `Update packages from CRAN' を実行し), その後で古いインストール先に残っているものを削除することです. 異なるヴァージョンの R は別々のディレクトリーにインストールされるようになっているので, (もしそうしたければ) 古いヴァージョンを残しておくことが可能です.
これは好みの問題になります. 大部分の人々にとって最良の方法とは, 既存の R をアンインストール (上記参照) して, 新しいバージョンをインストールし, 個別にインストールしたパッケージ類があればそれらを新しいインストール先のライブラリー・フォルダーにコピーし, 新しい R 上で update.packages() を実行し (あるいは, Packages メニューから `Update packages from CRAN' を実行し), その後で古いインストール先に残っているものを削除することです. 異なるバージョンの R は別々のディレクトリーにインストールされるようになっているので, (もしそうしたければ) 古いバージョンを残しておくことが可能です.

** 2.7 R が使うメモリーのサイズに制限があるように見えるのですが. (There seems to be a limit on the memory it uses!)

実際に制限があります.

その上限値は, コマンド・ラインのフラグ --max-mem-size で設定されます (「Windows 版 R をインストールするには? (How do I install R for Windows?)」参照). デフォールト値は, 物理的な RAM のサイズと 1Gb の小さいほうの値です. 10M 以上の任意の値に設定することができます (10M 未満では R は動作しません). ですが, 注意してください: Windows には (ほとんどのヴァージョンで) ユーザーの仮想メモリーに 2Gb の最大値があり, その一部はプロセスによって予備に取っておくことができますが, 使用することはできません. 
その上限値は, コマンド・ラインのフラグ --max-mem-size で設定されます (「Windows 版 R をインストールするには? (How do I install R for Windows?)」参照). デフォールト値は, 物理的な RAM のサイズと 1Gb の小さいほうの値です. 10M 以上の任意の値に設定することができます (10M 未満では R は動作しません). ですが, 注意してください: Windows には (ほとんどのバージョンで) ユーザーの仮想メモリーに 2Gb の最大値があり, その一部はプロセスによって予備に取っておくことができますが, 使用することはできません. 

メモリー・マネジャーの働き方のため, 空きメモリーがあっても R がそれを利用できない可能性があります.

メモリーの用法についての情報は, ?Memory および ?memory.size をご利用ください. 動作中の R のセッションの中で memory.limit を呼ぶことにより, メモリーの上限値を大きくすることができます.

フラグ --max-mem-size の値があまりに大きすぎると R の起動に失敗することが知られています: その上限値は Windows 2000 Professional では約 1.7Gb のようです.

別のメモリー・マネジャーを使うように R をコンパイルすることができます. そのメモリー・マネジャーは, 大きいサイズのメモリーを使うのに優れていますがかなり遅くなります (ある種の作業では R が数倍遅くなります).

** 2.8 異なるディレクトリー内の異なるプロジェクト用にワークスペースを保存することはできますか? (How can I keep workspaces for different projects in different directories?)

プロジェクト毎に別々のショートカットを作ってください: Q2.3 参照. R によって用いられるファイルへのパスはすべて, 開始ディレクトリーに対する相対パスです. そのため, 「作業フォルダ (`Start in')」フィールドを設定することによって自動的に別々のプロジェクトができるようになります.

別の方法としては, プロジェクト用に使いたいディレクトリー内に .RData という名前のファイルを保存し, それをダブルクリックして R を起動するか, あるいは拡張子 .RData を持つファイルを R のショートカットにドラッグ・アンド・ドロップしてください. どちらの場合でも, 作業ディレクトリーは, その (ダブルクリックあるいはドラッグ・アンド・ドロップした) ファイルが入っているディレクトリーになります.

** 2.9 R からプリントするには? (How do I print from R?)

何をプリントするかに依存します.

- グラフィクス・ウィンドウは, メニューからプリントすることができます. あるいは, dev.print に適切な引数をつけて実行することでプリントできます. (dev.print のヘルプ・ページをご参照ください: たいてい, dev.print(win.graph) でうまくいくでしょう.)
- グラフィックス・ウィンドウは, メニューからプリントすることができます. あるいは, dev.print に適切な引数をつけて実行することでプリントできます. (dev.print のヘルプ・ページをご参照ください: たいてい, dev.print(win.graph) でうまくいくでしょう.)
- File | Print メニューによって R コンソールあるいはページャーを (選択されている領域があればその部分を, そうでなければコンソールあるいはページャーの内容全体を) プリントすることができます.
- ページャーあるいは HTML ブラウザーからヘルプ・ファイルをプリントすることができます.
- もしも, RHOME?bin?helpPRINT.bat を構成 (configure) 済みで, LaTeX をインストールしてあれば, help(fn_name, offline=TRUE) によりヘルプ・ファイルをプリントすることができます.

** 2.10 R BATCH を使うことができますか? (Can I use R BATCH?)

はい. Windows では Rcmd BATCH がそれに相当します: 詳細については, Rcmd BATCH --help をご利用ください. (R 1.8.0 では Perl は必要でなくなりました.)

また, Rterm.exe を用いてバッチ・ファイルを組み立てることができます. サンプルのバッチ・ファイルは下記を (1行に) 含んでいます:

 path_to_R?bin?Rterm.exe --no-restore --no-save < %1 > %1.out 2>&1

`2>&1' の意味は, ウォーニングとエラーを通常の出力と同じファイルにリダイレクトするためのものですが, Windows 95/98/ME でのデフォールトの command.com `シェル' のユーザーは, この部分を削除する必要があるでしょう. (command.com プログラムには stderr (標準エラー出力) をリダイレクトする機能がありません. また, R 1.8.0 からは Rterm.exe は, そのようなシステムではウォーニングとエラーを通常の出力ファイルに送るようになっています.)

** 2.11 ESS と (X)emacs と一緒に rw1080 を使うことはできますか? (Can I use rw1080 with ESS and (X)emacs?)

はい. ESS の最近のヴァージョン (たとえば 5.1.20) には, このヴァージョンの R に対するサポートが付属しています. ESS から (C-c C-c で) R のプロセスを中断する機能をサポートしています.
はい. ESS の最近のバージョン (たとえば 5.1.20) には, このバージョンの R に対するサポートが付属しています. ESS から (C-c C-c で) R のプロセスを中断する機能をサポートしています.

ESS についての問合せは, R メーリング・リストではなく, ESS-help@stat.ethz.ch 宛に email を送ってください.

** 2.12 HOME および作業ディレクトリーとは何ですか? (What are HOME and working directories?)

文書内のいくつかの場所がこれらの用語を用います.

作業ディレクトリーとは, Rgui あるいは Rterm が起動されたディレクトリーのことです.  ただし, ショートカットが用いられた場合は, そのショートカットのプロパティの「作業フォルダ (`Start in')」フィールドで設定されたディレクトリーが作業ディレクトリーになります. R のコードの getwd() を実行することによって, 作業ディレクトリーの値を知ることができます.

ホーム・ディレクトリーはつぎのようにして設定されます:
- 環境変数 R_USER が設定されていれば, その値が用いられます.
- そうでない場合, 環境変数 HOME が設定されていれば, その値が用いられます.
- そうでない場合, 環境変数 HOMEDRIVE と HOMEPATH が設定されていれば, その値は ${HOMEDRIVE}${HOMEPATH} になります.
- これらのすべてに該当しない場合, カレント・ディレクトリーが用いられます.

R のコードの Sys.getenv("R_USER") を実行することによって, ホーム・ディレクトリーの値を知ることができます.

** 2.13 環境変数を設定するには? (How do I set environment variables?)

R では環境変数を 3通りの方法で設定することができます.

+ コマンド・ライン上で, name=value のように環境変数名と値の組を設定することによって. たとえば, Rgui へのショートカットではつぎのように設定することができます:
 path_to_R?bin?Rgui.exe HOME=p:/ R_LIBS=p:/myRlib
+ 作業ディレクトリーあるいはホーム・ディレクトリー内の環境ファイル .Renviron に, たとえば, つぎのような行を記述することによって.
 R_LIBS=p:/myRlib
また, (あなたに適切なパーミッションが与えられていれば) 環境ファイル etc?Renviron.site を作り, そのファイルに上記と同様にして環境変数を設定することも可能です. その R に対するすべてのユーザーとすべての用途にわたって設定すべき環境変数がある場合は, このように etc?Renviron.site を用いるのが便利です. (etc?Renviron.site で設定された環境変数値は, .Renviron あるいはコマンド・ラインでの設定で上書きすることができます.)
環境ファイルの詳細については ?Startup をご参照ください.
+ Windows を介するすべてのアプリケーションの環境変数の設定方法によって. 環境変数の設定方法はシステムに固有です: Windows 9x では, autoexec.bat ファイル内で, あるいは, Rgui / Rterm を起動した MS-DOS ウィンドウにおいて設定することができます. Windows NT/2000/XP では, コントロール・パネルあるいは「マイコンピュータ ('My Computer')」のプロパティを用いて設定することができます. Windows ME では, (スタート・メニューのプログラム>アクセサリ>システム ツール下の) System Configuration Utility を用いて設定することができます. このような環境変数の設定変更を有効にするには, いったんログアウトするか再起動する必要があるかもしれません.

環境変数の設定値の優先順序は, 上記のリスト順, つまり, コマンド・ラインでの設定, .Renviron での設定, Windows から継承された設定の順です.

** 2.14 確かにそこにファイルがあるのに, R がそれを見つけることができません! (R can't find my file, but I know it is there!)

そのファイルをどうやって指定しましたか? 
R の文字列では, バックスラッシュ {あるいは円記号} は 2重に (??) 書かないといけません. たとえば, "d:??rw1080??library??xgobi??scripts??xgobi.bat" のように. 物事を容易にするためには, パスの区切り記号としてバックスラッシュ {あるいは円記号} (?) の代わりにスラッシュ (/) を使うと良いでしょう: これは Windows でもきちんと機能します.

厄介の種として他にありそうなのは, フォルダー名にスペースが含まれていることです. 私たち {Windows 版 R の開発者} は, スペースを含むパスで R が動作できるように試みてきましたが, Unix 用にパッケージを書いている人々の多くはこのことを気にかけていません. そのため, {ロングネームの代わりに} ショートネームを試みる価値があります. (ショートネームとは PROGRA~1 のようなものです. Windows のほとんどのヴァージョンでは, ファイルのプロパティの `MS-DOS name' 欄にそのファイルのショートネームが記載されています. また, Windows 2000/XP では「コマンド プロンプト」ウィンドウで dir /X を実行すると表示されます.)
厄介の種として他にありそうなのは, フォルダー名にスペースが含まれていることです. 私たち {Windows 版 R の開発者} は, スペースを含むパスで R が動作できるように試みてきましたが, Unix 用にパッケージを書いている人々の多くはこのことを気にかけていません. そのため, {ロングネームの代わりに} ショートネームを試みる価値があります. (ショートネームとは PROGRA~1 のようなものです. Windows のほとんどのバージョンでは, ファイルのプロパティの `MS-DOS name' 欄にそのファイルのショートネームが記載されています. また, Windows 2000/XP では「コマンド プロンプト」ウィンドウで dir /X を実行すると表示されます.)

** 2.15 R はレジストリーを使いますか? (Does R use the Registry?)

R 自身はレジストリーを使いません.

R のインストーラーは, アンインストールを可能にするために, いくつかのエントリーをセットします. さらに, ヴァージョンとインストール・パスの情報を与えるレジストリー・キー LOCAL_MACHINE?Software?R-core?R をセットします (デフォールトではこのレジストリー・キーをセットするようになっていますが, これを非選択状態 (セットしない) にすることもできます). 繰り返しますが, このレジストリーは R 自身では使用されませんが, DCOM インターフェイスで使用されるでしょう (http://cran.r-project.org/other-software.html ). また, 拡張子 .RData についてのファイルの関連付け情報がレジストリーにセットされます.
R のインストーラーは, アンインストールを可能にするために, いくつかのエントリーをセットします. さらに, バージョンとインストール・パスの情報を与えるレジストリー・キー LOCAL_MACHINE?Software?R-core?R をセットします (デフォールトではこのレジストリー・キーをセットするようになっていますが, これを非選択状態 (セットしない) にすることもできます). 繰り返しますが, このレジストリーは R 自身では使用されませんが, DCOM インターフェイスで使用されるでしょう (http://cran.r-project.org/other-software.html ). また, 拡張子 .RData についてのファイルの関連付け情報がレジストリーにセットされます.

(bin フォルダーにある) RSetReg.exe を実行するとこれらのレジストリーのエントリーを追加することができます. そして, RSetReg.exe /U を実行すればこれらを削除することができます. 注意: これらは計算機毎に設定されます (ユーザー毎ではありません). また, これはファイルの関連付けを設定しないし削除もしません.

** 2.16 R はオートメーション (OLE, COM) をサポートしていますか? (Does R support automation (OLE, COM)?)

直接には, サポートしていません.

Thomas Baier 作の (D)COM サーヴァーがあり, CRAN (http://cran.r-project.org/other-software.html ) から入手可能です. これは, (R のディストリビューション内の) Rproxy.dll および R.dll と組み合わせて機能し, R からの (R への) データ転送および R コマンドのリモート実行, そして R のグラフィクス・ウィンドウの埋め込みをサポートします. この DCOM サーヴァーを利用する R-Excel インターフェイスがこのディストリビューションに含まれています. 注意: このソフトウエアを用いるときは, R ライブラリーの DLLs が見つかるように, あなたのパス (PATH) 設定の中に必ず RWVERSION/bin ディレクトリーが含まれているようにしてください.
Thomas Baier 作の (D)COM サーバーがあり, CRAN (http://cran.r-project.org/other-software.html ) から入手可能です. これは, (R のディストリビューション内の) Rproxy.dll および R.dll と組み合わせて機能し, R からの (R への) データ転送および R コマンドのリモート実行, そして R のグラフィックス・ウィンドウの埋め込みをサポートします. この DCOM サーバーを利用する R-Excel インターフェイスがこのディストリビューションに含まれています. 注意: このソフトウエアを用いるときは, R ライブラリーの DLLs が見つかるように, あなたのパス (PATH) 設定の中に必ず RWVERSION/bin ディレクトリーが含まれているようにしてください.

別の (D)COM サーヴァーが http://www.omegahat.org/ から入手可能です. これは, R のオブジェクトが COM 値としてエクスポートされることを可能にします. このサイトにはまた, R が (D)COM クライアントとして振舞うことを可能にするパッケージ RDCOMClient および SWinTypeLibs があります.
別の (D)COM サーバーが http://www.omegahat.org/ から入手可能です. これは, R のオブジェクトが COM 値としてエクスポートされることを可能にします. このサイトにはまた, R が (D)COM クライアントとして振舞うことを可能にするパッケージ RDCOMClient および SWinTypeLibs があります.

** 2.17 インターネット・ダウンロード機能がうまく動きません. (The internet download functions fail.)

たとえば, update.packages および Packages メニューのメニュー項目など.

私たちはこれについていくつかの報告を受けています (ところが, それの報告された問題箇所は, 私たちのどの計算機でもきちんと動作しているのですが). 可能な修正方法が 2通り知られています.

(a) 代替の internet2.dll を使ってください. それには, フラグ --internet2 を付けて R を起動します (「Windows 版 R をインストールするには? (How do I install R for Windows?)」参照). これは `Internet Explorer internals' を用います (したがって, Internet Explorer 4 以降がインストールされている必要があります). 注意: この方法は, 認証を必要とするプロクシーでは機能しません.

(b) プロクシーを設定する必要があります: ?download.file をご参照ください. ここでは, ショートカット内のコマンド・ラインの例を 2通り示します (実際の例ですが, ローカルにのみ利用可能な計算機からの例です):

 /R/rw1080/bin/RGui.exe http_proxy=http://user:pass@gannet:80/

 /R/rw1080/bin/RGui.exe http_proxy=http://gannet/ http_proxy_user=ask

2番目の例では, HTTP ダウンロードがはじめて用いられるときに, ユーザーにプロクシーでのユーザー名とパスワードを入力するように促します.

** 2.18 ある種の文字を入力すると Rgui がクラッシュします. (Entering certain characters crashes Rgui.)

以前はときどきこの問題が起こっていました. その中で私たちが解決した問題はすべて, 原因を追求していくと msvcrt.dll の欠陥のあるヴァージョンにたどりついています. 私たちは, この問題を回避するために rw1051 から代わりのものをインストールするようにしています. 他の何人かの人々が, この問題がキーボード・マクロ・プログラム (たとえば, `Macro Magic') によって引き起こされることを発見しています.
以前はときどきこの問題が起こっていました. その中で私たちが解決した問題はすべて, 原因を追求していくと msvcrt.dll の欠陥のあるバージョンにたどりついています. 私たちは, この問題を回避するために rw1051 から代わりのものをインストールするようにしています. 他の何人かの人々が, この問題がキーボード・マクロ・プログラム (たとえば, `Macro Magic') によって引き起こされることを発見しています.

もしもこの問題がまだ発生するならば, 自己解凍アーカイヴ ftp://ftp.microsoft.com/softlib/mslfiles/msvcrt.exe を展開して得られる msvcrt.dll を rw1080?bin ディレクトリーに入れてみてください. なお, このディレクトリーから msvcrt.dll を除去すれば標準の挙動に戻ります. また, Windows のあるヴァージョンでは (ただし 2000/XP ではなく), あなたのパス設定の最初のほうに rw1080?bin ディレクトリーを置く必要があるようです.
もしもこの問題がまだ発生するならば, 自己解凍アーカイブ ftp://ftp.microsoft.com/softlib/mslfiles/msvcrt.exe を展開して得られる msvcrt.dll を rw1080?bin ディレクトリーに入れてみてください. なお, このディレクトリーから msvcrt.dll を除去すれば標準の挙動に戻ります. また, Windows のあるバージョンでは (ただし 2000/XP ではなく), あなたのパス設定の最初のほうに rw1080?bin ディレクトリーを置く必要があるようです.

この修正を行うことにより, 他の問題 (たとえば, 日付-時刻関数の不正確な結果) も解決しています. しかし, おそらく Windows を再インストールしたほうが良いでしょう.

** 2.19 その他の奇妙なクラッシュについて. (Other strange crashes.)

Rgui.exe が起動に失敗して, "Floating-point invalid operation" (浮動小数点の無効な演算) あるいは他の低レヴェルのエラーで終了することを, 何人かのユーザーが発見しています. このエラーはまた, セッションの途中で起こるかもしれません. 私たちが原因を突き止めたいくつかの事例では, それは問題のシステム上のヴィデオ・ドライヴァーのバグが原因でした: それは, 浮動小数点の制御語を R と互換性のないものに変更してしまうというものです. (その制御語をそのドライヴァー・コードが呼び出されたときの状態に戻すことが望ましい習慣でしょうけれど.) たとえば, ヴァーチャル・スクリーン・マネジャー JSP2 がこのクラッシュを引き起こすことを, あるユーザーが報告しています.
Rgui.exe が起動に失敗して, "Floating-point invalid operation" (浮動小数点の無効な演算) あるいは他の低レベルのエラーで終了することを, 何人かのユーザーが発見しています. このエラーはまた, セッションの途中で起こるかもしれません. 私たちが原因を突き止めたいくつかの事例では, それは問題のシステム上のビデオ・ドライバーのバグが原因でした: それは, 浮動小数点の制御語を R と互換性のないものに変更してしまうというものです. (その制御語をそのドライバー・コードが呼び出されたときの状態に戻すことが望ましい習慣でしょうけれど.) たとえば, バーチャル・スクリーン・マネジャー JSP2 がこのクラッシュを引き起こすことを, あるユーザーが報告しています.

これらのエラーについては, 私たちが修正したり対処方法を出したりすることは基本的に不可能です. 私たちが知っているただひとつの解決方法は, 問題に遭遇しているユーザーがそのエラーを引き起こすバグのあるドライヴァーを取り替えることです.
これらのエラーについては, 私たちが修正したり対処方法を出したりすることは基本的に不可能です. 私たちが知っているただひとつの解決方法は, 問題に遭遇しているユーザーがそのエラーを引き起こすバグのあるドライバーを取り替えることです.

* 3 パッケージ (Packages)

** 3.1 このヴァージョンにパッケージ (ライブラリー) をインストールすることはできますか? (Can I install packages (libraries) in this version?)
** 3.1 このバージョンにパッケージ (ライブラリー) をインストールすることはできますか? (Can I install packages (libraries) in this version?)

はい. ただし, パッケージの作者かあるいは CRAN の bin/windows/contrib の部分の管理者が, (.zip ファイルのように) Windows 用にプリコンパイルされた (事前にコンパイルされた) ヴァージョンを用意していない場合, あなたがパッケージをインストールするためには多数のツールが必要になります.
はい. ただし, パッケージの作者かあるいは CRAN の bin/windows/contrib の部分の管理者が, (.zip ファイルのように) Windows 用にプリコンパイルされた (事前にコンパイルされた) バージョンを用意していない場合, あなたがパッケージをインストールするためには多数のツールが必要になります.

プリコンパイルされたパッケージは, CRAN から, あるいはローカルにダウンロードした .zip ファイルから, install.packages コマンドを用いてインストールすることができます (install.packages のヘルプ・ページをご参照ください). Packages メニューには, パッケージのインストールのためのポイント・アンド・クリック方式のインターフェイスを提供するメニュー項目があります. R 1.7.0 以降は, 各マイナー・ヴァージョン (1.x) 用のパッケージが別々の領域に格納されるようになっています. したがって, R 1.8.0 用のファイルは bin/windows/contrib/1.8 に入ります. 古いヴァージョン用にコンパイルされたパッケージを (自分の責任において) 使ってみることができます.
プリコンパイルされたパッケージは, CRAN から, あるいはローカルにダウンロードした .zip ファイルから, install.packages コマンドを用いてインストールすることができます (install.packages のヘルプ・ページをご参照ください). Packages メニューには, パッケージのインストールのためのポイント・アンド・クリック方式のインターフェイスを提供するメニュー項目があります. R 1.7.0 以降は, 各マイナー・バージョン (1.x) 用のパッケージが別々の領域に格納されるようになっています. したがって, R 1.8.0 用のファイルは bin/windows/contrib/1.8 に入ります. 古いバージョン用にコンパイルされたパッケージを (自分の責任において) 使ってみることができます.

注意: CRAN ではプリコンパイルされたヴァージョンはサポートされていません: http://cran.r-project.org/bin/windows/contrib/ReadMe をご参照ください.
注意: CRAN ではプリコンパイルされたバージョンはサポートされていません: http://cran.r-project.org/bin/windows/contrib/ReadMe をご参照ください.

プリコンパイルされたヴァージョンや最新版がない場合, あるいはあなたがソースからコンパイルしたい場合は, rw1080.exe から必要なファイルをインストールしたかどうか確認してください. それから, readme.packages ファイルを読んでください. パッケージのインストールを行うためには, いくつかのツールを収集してインストールする必要があるでしょう: これらのツールは, http://www.stats.ox.ac.uk/pub/Rtools/ ((訳注:現在は http://www.murdoch-sutherland.com/Rtools/ でメンテナンスがおこなわれている)) のポータル経由でダウンロードすることができます. 必要なツールのインストールができたら, `Rcmd INSTALL pkgname' {pkgname はパッケージ名} を実行すればパッケージのコンパイルとインストールできます. インストールしたパッケージをチェックする (そのパッケージのヘルプ・ページやテストセットにある実行例を実行することを含む) には, `Rcmd check pkgname' を実行してください: 「R の拡張機能を書くこと (Writing R Extensions)」マニュアルをご参照ください.
プリコンパイルされたバージョンや最新版がない場合, あるいはあなたがソースからコンパイルしたい場合は, rw1080.exe から必要なファイルをインストールしたかどうか確認してください. それから, readme.packages ファイルを読んでください. パッケージのインストールを行うためには, いくつかのツールを収集してインストールする必要があるでしょう: これらのツールは, http://www.stats.ox.ac.uk/pub/Rtools/ ((訳注:現在は http://www.murdoch-sutherland.com/Rtools/ でメンテナンスがおこなわれている)) のポータル経由でダウンロードすることができます. 必要なツールのインストールができたら, `Rcmd INSTALL pkgname' {pkgname はパッケージ名} を実行すればパッケージのコンパイルとインストールできます. インストールしたパッケージをチェックする (そのパッケージのヘルプ・ページやテストセットにある実行例を実行することを含む) には, `Rcmd check pkgname' を実行してください: 「R の拡張機能を書くこと (Writing R Extensions)」マニュアルをご参照ください.

注意: これ {ソースからのインストール} は, かなり複雑です. 説明書に書かれたインストール方法に正確に従ってください. うまくインストールできないという問合せの 90% は, 説明書のインストール方法に正確に従っていなかったことが原因でした.

** 3.2 私には rw1080?library に対する書込みのパーミッションがないのですが. (I don't have permission to write to the rw1080?library directory.)

あなたはパッケージを好きな場所にインストールすることができて, 環境変数 R_LIBS (「環境変数を設定するには? (How do I set environment variables?)」参照) を使ってライブラリーの場所 (複数可) を指定することができます.

あなたのパッケージが p:?myRlib にインストールされているものとします. その場合, パッケージ (ライブラリー) の場所を設定するにはつぎの 2通りの方法があります:
- 環境変数 R_LIBS に p:?myRlib を設定する
あるいは,
- パッケージを使うときにライブラリーの場所を指定する. たとえば,
 library(mypkg, lib.loc="p:/myRlib")

** 3.3 私がインストールしたパッケージが HTML ヘルプ・システムに現れません. (The packages I installed do not appear in the HTML help system.)

プリコンパイルされたパッケージをインストールした後に HTML のインデクスを更新するには, R プロンプト上で下記を実行してください:
プリコンパイルされたパッケージをインストールした後に HTML のインデックスを更新するには, R プロンプト上で下記を実行してください:
 > link.html.help()

Packages メニューから, あるいは install.packages() を使ってパッケージをインストールした場合, および help.start が実行された場合に, HTML のインデクスの更新が自動的に行われます (ただし, あなたに rw1080 上の書込みパーミッションがある場合に).
Packages メニューから, あるいは install.packages() を使ってパッケージをインストールした場合, および help.start が実行された場合に, HTML のインデックスの更新が自動的に行われます (ただし, あなたに rw1080 上の書込みパーミッションがある場合に).

** 3.4 私の関数が HTML ヘルプ検索システムで見つかりません. (My functions are not found by the HTML help search system.)

あなたがインストールしたパッケージの関数がつぎの条件を満たしている必要があります:
- そのパッケージが rw1080?library にインストールされている
- そのパッケージのトップ‐レヴェル・ディレクトリー内に CONTENTS ファイルがある
- そのパッケージをインストールした後に, Q3.3 に記載された方法でインデクスを更新している
- そのパッケージのトップ‐レベル・ディレクトリー内に CONTENTS ファイルがある
- そのパッケージをインストールした後に, Q3.3 に記載された方法でインデックスを更新している

これらのすべてを満たしているならば, そのパッケージの関数に対する HTML ヘルプ検索が機能します.

もしも HTML ヘルプ検索システムがまったく動作しない場合は, おそらくあなたのブラウザーに Java サポートがインストールされていないか, あるいは使用不可になっていると思われます. 最近のヴァージョンブラウザーでは, Java サポートがオプションになっています: たとえば, Netscape 6/7 および Opera ではオプションになっています. また, Windows XP の IE6 ではインストールされないかもしれません. また, JavaScript を使用可にしておく必要があります.
もしも HTML ヘルプ検索システムがまったく動作しない場合は, おそらくあなたのブラウザーに Java サポートがインストールされていないか, あるいは使用不可になっていると思われます. 最近のバージョンブラウザーでは, Java サポートがオプションになっています: たとえば, Netscape 6/7 および Opera ではオプションになっています. また, Windows XP の IE6 ではインストールされないかもしれません. また, JavaScript を使用可にしておく必要があります.

3.5 パッケージのロード (読込み) が失敗します. (Loading a package fails.)

そのパッケージはこのヴァージョンの R 用にコンパイルされていますか? パッケージの多くは, かなり最近のヴァージョン用にコンパイルされている必要があります.
そのパッケージはこのバージョンの R 用にコンパイルされていますか? パッケージの多くは, かなり最近のバージョン用にコンパイルされている必要があります.

パッケージが R のどのヴァージョン用にコンパイルされたか調べるには, そのパッケージの DESCRIPTION ファイル内の Built: 行を見るか, あるいは, そのパッケージの libs ディレクトリー内の DLL (あれば) の「バージョン情報 (Version)」タブを見てください.
パッケージが R のどのバージョン用にコンパイルされたか調べるには, そのパッケージの DESCRIPTION ファイル内の Built: 行を見るか, あるいは, そのパッケージの libs ディレクトリー内の DLL (あれば) の「バージョン情報 (Version)」タブを見てください.
(Windows Explorer を使ってその DLL 上で右クリックし, プロパティの「バージョン情報 (Version)」タブを選択してください. あるいは, R 内で DLL.version 関数を用いてください.) もしも Built: 行や「バージョン情報 (Version)」タブがない場合は, そのパッケージはあまりにもずっと以前にコンパイルされたものです.

** 3.6 パッケージ TclTk が動作しません. (Package TclTk does not work.)

tcltk を動作させるには, Tcl がインストールされている必要があります. (tcltk の動作確認は, library(tcltk) の後に demo(tkdensity) あるいは demo(tkttest) を実行してください.) tcltk は, rw1080.exe によるインストールではオプションになっています (デフォールトでは, インストールするように選択されていますが). もしも
 Tcl/Tk support files were not installed
というメッセージが表示されるならば, そのオプションのファイル類がインストールされていないので, 再びインストーラーを使ってそれらをインストールしなおす必要があります. (注意: パッケージ tcltk は miniR インストーラーに含まれていません.)

もうひとつの方法として, あなたが環境変数 MY_TCLTK を空でない値に設定している場合は, 別の Tcl/Tk 8.4.x のインストールを使おうとしていて, それが正しくセットアップされているものと想定されるようになります. その場合, Tcl/Tk サポート・ファイルをインストールする必要はありません (ただし, インストールしてもかまいません). 注意: R 1.7.0 からは, 8.3.x ではなく 8.4.x が必要です. (あなたが R をソースから構築する場合は, 8.3.x を用いるように R を構成 (configure) することができます.)

** 3.7 Compiled HTML のハイパーリンクがときどき機能しません. (Hyperlinks in Compiled HTML sometimes do not work.)

異なるライブラリーにインストールされたパッケージの間では, これが機能しないかもしれません. この問題は, Unix の場合はシンボリック・リンクを用いることで解決しますが, Windows ではシンボリック・リンクが実装されていないので使えません.

** 3.8 update.packages() が成功しません. (update.packages() fails)

使用中のパッケージを更新することができないせいかもしれません:  パッケージの DLL がロードされているとき, Windows がそれを `ロックする' からです. したがって, 新しいセッションで update.packages() (あるいはメニュー上の相当するコマンド) を実行してください.

もしもあなたの .Rprofile に library(foo) が入っている場合, パッケージ foo を更新する際には, R を --vanilla オプション {プロファイルを読み込まない} を付けて起動してください.

* 4 Windows 版の機能 (Windows Features)

** 4.1 Unix 版 R と挙動が違う部分は何でしょうか? (What should I expect to behave differently from the Unix version of R?)

- R のコマンドを中断するには, Rgui.exe では <Esc> を, Rterm.exe では <Ctrl-break> あるいは <Ctrl-C> を用います: GUI ヴァージョンではコピーするのに <Ctrl-C> が用いられます.
- R のコマンドを中断するには, Rgui.exe では <Esc> を, Rterm.exe では <Ctrl-break> あるいは <Ctrl-C> を用います: GUI バージョンではコピーするのに <Ctrl-C> が用いられます.
- コマンド・ライン編集がつねに利用可能ですが, Unix の readline ベースの編集機能より単純なものです. Rgui.exe についてはメニュー項目 `Help | Console' で詳細情報を見ることができます. Rterm.exe については README.rterm ファイルをご参照ください.
- help.start() はブラウザーに自動的にはヘルプ要求を送りません: この機能をオンにするには options(htmlhelp=TRUE) を用いてください.
- HTML ヘルプ・システムには, クロス‐ライブラリー (ライブラリーにまたがる) リンクのサポートに制限があります.
- (たとえば, source() における) ファイルへのパスは, スラッシュ "/" あるいはバックスラッシュ {あるいは円記号} 2つ "??" で指定することができます.
- system() が少し違います: system() および shell() のヘルプ・ページをご参照ください.

** 4.2 すてきな機能があると聞きました: それらについて教えてください! (I hear about some nifty features: please tell me about them!)

README.rw1080 を読みましたか?  R コンソール, ページャー, およびグラフィック・ウィンドウ上に File メニューがあります. それらのメニューから source の実行や保存ができます. また, グラフィクスのコピー (png, jpeg, bmp, postscript, PDF あるいは metafile 形式で) ができます. 右クリックで表示されるメニューには, メニュー項目へのショートカットが表示されます. オプションで, 頻繁に行う操作へのショートカット・ボタンを並べたツールバーがあります.
README.rw1080 を読みましたか?  R コンソール, ページャー, およびグラフィック・ウィンドウ上に File メニューがあります. それらのメニューから source の実行や保存ができます. また, グラフィックスのコピー (png, jpeg, bmp, postscript, PDF あるいは metafile 形式で) ができます. 右クリックで表示されるメニューには, メニュー項目へのショートカットが表示されます. オプションで, 頻繁に行う操作へのショートカット・ボタンを並べたツールバーがあります.

R コンソールをリサイズすると, options(width=) が自動的にその新しいコンソール幅に設定されます (構成 (configuration) ファイル内でその機能をオフにしていなければ).

グラフィクスにはヒストリー機能があります. README.rw1080 には下記のように記載されています:
グラフィックスにはヒストリー機能があります. README.rw1080 には下記のように記載されています:
「History メニューでプロットを記録することができます. プロットが記録されているとき, これまでのプロットを <PgUp> および <PgDn> で再表示したり, 保存したり, 置き換えたり (replace) することができます. プロットの記録は, 自動的にオンにする (History メニューの Recording 項目) か, あるいは個々のプロットを追加する (History メニューの Add 項目あるは <INS> キー) ことができます. プロットのヒストリー全体を大域的環境の R 変数に保存したり, R 変数からプロットのヒストリーを取得することができます.

すべてのウィンドウ・ディヴァイスの間でただ 1つのグラフィクス・ヒストリーを共有します.」
すべてのウィンドウ・デバイスの間でただ 1つのグラフィックス・ヒストリーを共有します.」

R コンソールおよびグラフィック・ウィンドウには, RHOME?etc ディレクトリーに格納される, Rconsole および Rdevga という名前の構成 (configuration) ファイルがあり, あなたの HOME ディレクトリーに個人用のコピーを保持することができます. これらの構成ファイルには, あなたが自分のプリファレンス用に構成ファイルを編集するためにじゅうぶんなコメントが含まれています. より詳しい情報は ?Rconsole をご参照ください.
Edit メニューから起動される Preferences エディターがあり, これを使って Rconsole ファイルを編集することができます.

** 4.3 円がスクリーン上で楕円に見えるのですが. (Circles appear as ovals on screen)

グラフィクス・システムは, Windows に X および Y 方向のインチあたりのピクセル数を問い合せて, その数値を (R ではインチ単位で表される) グラフィクスのサイズに使います. ときどき, Windows からの答えがまったくでたらめなことがあります. どのみち, Windows は, モニター上で水平および垂直方向のサイズがどのように設定されているか, 正確には知らないでしょう. あなたはその正確な値を, ウインドウへの呼び出しであるいはオプションとして, 指定することができます: ?windows をご参照ください. (だいたいこれらの値は 80 くらいの値です.)
グラフィックス・システムは, Windows に X および Y 方向のインチあたりのピクセル数を問い合せて, その数値を (R ではインチ単位で表される) グラフィックスのサイズに使います. ときどき, Windows からの答えがまったくでたらめなことがあります. どのみち, Windows は, モニター上で水平および垂直方向のサイズがどのように設定されているか, 正確には知らないでしょう. あなたはその正確な値を, ウインドウへの呼び出しであるいはオプションとして, 指定することができます: ?windows をご参照ください. (だいたいこれらの値は 80 くらいの値です.)

私たちのシステムの 1つでは, スクリーンの高さは 240mm と報告され, その幅は 1280 x 1024 モードでは 300mm, 1280 x 960 および 1600 x 1200 モードでは 320mm と報告されています. 実際には, このモニターは 21 インチで, 400m x 300mm です!

** 4.4 フォーカスをグラフィクス・ウィンドウあるいはコンソールに移動させるには? (How do I move focus to a graphics window or the console?)
** 4.4 フォーカスをグラフィックス・ウィンドウあるいはコンソールに移動させるには? (How do I move focus to a graphics window or the console?)

あなたは, 関数の中から, たとえば identify あるいは readline を呼び出すときに, この操作を行いたいのかもしれません. 関数 bringToTop() を用いてください. この関数は, デフォールトの引数では, アクティヴ・グラフィクス・ウィンドウを最前面に出し, そこにフォーカスを置くようになっています. 引数 -1 では, コンソールを最前面に出し, そこにフォーカスを置くようになります.
あなたは, 関数の中から, たとえば identify あるいは readline を呼び出すときに, この操作を行いたいのかもしれません. 関数 bringToTop() を用いてください. この関数は, デフォールトの引数では, アクティブ・グラフィックス・ウィンドウを最前面に出し, そこにフォーカスを置くようになっています. 引数 -1 では, コンソールを最前面に出し, そこにフォーカスを置くようになります.

これは MDI および SDI モードの Rgui.exe で機能し, Rterm.exe からのグラフィクス・ウィンドウに用いることができます (ただし, Windows は必ずしもそれに従って振舞わないかもしれません).
これは MDI および SDI モードの Rgui.exe で機能し, Rterm.exe からのグラフィックス・ウィンドウに用いることができます (ただし, Windows は必ずしもそれに従って振舞わないかもしれません).

* 5 ワークスペース (Workspaces)

** 5.1 私のワークスペースが変な場所に保存されてしまいます: これをやめさせるには? (My workspace gets saved in a strange place: how do I stop this?)

作業ディレクトリーを変更しませんでしたか?: Q5.2 をご参照ください.

** 5.2 ワークスペースを別の場所に格納するには? (How do I store my workspace in a different place?)

`File | Change Dir...' メニュー項目を用いて新しい作業ディレクトリーを選択してください: このデフォールト値は, あなたが最後にファイルをロードしたディレクトリーです. ワークスペースは作業ディレクトリーに保存されます. また, `Save Workspace...' メニュー項目からワークスペースのスナップショットを保存することができます.

コマンド・ラインから関数 setwd によって作業ディレクトリーを変更することができます: そのヘルプ・ページをご参照ください.

** 5.3 Unix/GNU-Linux あるいは MacOS の下で保存されたワークスペースをロードすることができますか? (Can I load workspaces saved under Unix/GNU-Linux or MacOS?)

はい. R のすべてのポートが, ワークスペースについて同一のフォーマットを使っているので, (少なくとも, R の同じ 1.x.? のヴァージョンでは) 異なるポートで使用することができます.
はい. R のすべてのポートが, ワークスペースについて同一のフォーマットを使っているので, (少なくとも, R の同じ 1.x.? のバージョンでは) 異なるポートで使用することができます.

* 6 R コンソールおよびフォント (The R Console and Fonts)

** 6.1 日本語フォントを使いたいのですが. (I would like to be able to use Japanese fonts)

たとえば, コンソールや注釈付きグラフ上で.

構成 (configuration) ファイル Rconsole および Rdevga 内で適切なフォントを設定すれば可能になると思います (Q4.2 参照). 追加のフォントを Rdevga 内に指定し, 下記のようにして使用することができます:
 par(font=, font.lab=, font.main=, font.sub=)

デフォールトでは 19個のフォントが (1 から 19 として) 指定されます: これらにフォントを追加したり (最大 13個まで), 入れ替えたりすることができます.

** 6.2 R コンソールで (たとえば ?text において) アクセント付きの文字が見えないのですが. (I don't see characters with accents at the R console, for example in ?text.)

Rconsole で, Latin1 エンコーディングをサポートするフォントを指定する必要があります (Q4.2 参照). 私たちのシステム上では, デフォールトの Courier New は Latin1 エンコーディングをサポートしています (FixedSys も同様です). これは, 他のロケール (とくに非西ヨーロッパ言語) では問題になるかもしれません.

Rterm 内部でこれらの文字をサポートするかどうかは, Rterm が実行される環境 (ターミナル・ウィンドウおよびシェル, ロケールの設定を含む) とそのターミナル・ウィンドウが用いるフォントに依存します.

** 6.3 Rgui を用いるとき, コンソールへの出力が遅れるように見えるのですが. (When using Rgui the output to the console seems to be delayed.)

これは意図的なものです: コンソールの出力は, (より高速に, より乱れにくくするために) バッファーに蓄えられ, ある一定のサイズ毎にまとめて書き換えられます. `Misc' メニューあるいは右クリックで表示されるメニューから, このバッファリング機能をオンやオフにすることができます: <Ctrl-W> でこの設定をトグルします.

あなたが, R コードを読み込んで (source して) いるとき, あるいは関数を書いている場合は, もうひとつの選択肢 (オプション) があります. R の関数 flush.console() の呼び出しにより, バッファーを書き出し, それでコンソールを更新するでしょう.

** 6.4 コンソールあるいはページャーにおいて長い行が途中で切り詰められています. (Long lines in the console or pager are truncated.)

それらの行は切り詰められているように見えるだけです: 行末の $ 印は, ウィンドウをスクロールすると行の残りの部分を表示できることを示しています. 水平方向のスクロールバーあるいは <CTRL + 左/右矢印> キーを用いると, 水平方向にスクロールします. (この <CTRL + 左/右矢印> キーはページャーでも機能します.)

* 7 ソースから構築する (Building from Source)

** 7.1 R をソースからコンパイルするには? (How can I compile R from source?)

R のソースを入手してください. R-1.8.0 をコンパイルすると仮定します. まず, パスにスペースが含まれないディレクトリーに移動し, 下記を実行します:
 tar zxvf R-1.8.0.tgz
 cd R-1.8.0
 cd src?gnuwin32

つぎに, INSTALL ファイルを読み, 必要なツールをすべて用意します. それから, make を実行し, {make が終わるまで} しばらく待ちます. (高速のローカル・ディスクを持つ 2.4GHz Pentium 4 で, 完全な構築 (complete build) に約 5分かかります.)

あなたは, 大文字と小文字をきちんと区別するファイル・システムの下でコンパイルする必要があるかもしれません. 私たちは, (ファイル名をすべて小文字で取り扱う) samba によってマウントされたファイル・システムではうまく動作しなかったことを発見しました.

** 7.2 高速の BLAS を用いることができますか? (Can I use a fast BLAS?)

数値線形代数の速度を上げるために, 高速の BLAS (Basic Linear Algebra Subprograms, http://www.netlib.org/blas/faq.html ) ルーチンが用いられます. R のソースの中には, ATLAS (http://math-atlas.sourceforge.net ) という名前の `調整された' BLAS のためのサポートがあります. ATLAS による時間の節約はかなりものです: 366MHz PIIM {Pentium IIm?} および 1000 x 1000 行列での La.svd の計算に, 標準の BLAS では 182秒かかりましたが, ATLAS では 59秒しかかかりませんでした. ATLAS はある特定のチップに調整されているため, 私たちはそれを一般的に用いることはできません: Pentium III あるいは Athlon XP に最適なルーチンはまったく異なっていて, そのいずれも Pentium II ではまったく動作しないでしょう.

BLAS のサポートは単一の DLL R_HOME?bin?Rblas.dll によって提供されていて, それを置き換えるだけで高速の BLAS を追加することができます. より一般的なチップのいくつかに対応する置き換え用の Rblas.dll は, CRAN の bin/windows/contrib/ATLAS ディレクトリーで入手可能です.

R をソースから構築している場合は, ファイル MkRules 内にマクロ USE_ATLAS および ATLAS_PATH があります. USE_ATLAS = YES と設定し, ATLAS_PATH には ATLAS ライブラリーが置いてある場所を設定してください. ライブラリーは自分で make する必要があるでしょう: というのは, 私たちが見たことのあるバイナリーはいずれも, 正しいコンパイラー用にコンパイルされていません.

** 7.3 コンパイルされた C コードをインクルードするには? (How do I include compiled C code?)

R パッケージの構築により, コンパイルされた C コードをインクルードすることを強くお勧めします: 「R の拡張機能を書く (`Writing R Extensions')」マニュアルをご参照ください. とにかく, (rw1080.exe 内にある) R パッケージを構築するための R システムの部品をインストールし, さらに, 付属のファイル readme.packages に述べられているツール群 (Perl を含む) およびコンパイラーを入手してインストールしなければいけません. それから, 
 ...?bin?Rcmd SHLIB foo.c bar.f
を実行して, foo.dll を作ります. より詳しいオプションについては ...?bin?Rcmd SHLIB --help を, あるいは ?SHLIB をご参照ください.

Visual C++, Borland C++ 等のコンパイラーを利用したい場合は, readme.packages 内の適切なセクションをご参照ください.

** 7.4 コンパイルし, dyn.load したコードをデバッグするには? (How do I debug code that I have compiled and dyn.load-ed?)

適切なヴァージョンの gdb が必要でしょう: 私たちは通常, Cygwin ディストリビューションからそれを使っています. Windows の下でのデバッグはしばしば困難なプロセスになり, ときにまったく動作しないこともあります. もしもあなたが必要とするものがクラッシュを捕捉するためのジャスト・イン・タイム・デバッガーならば, http://jrfonseca.dyndns.org/projects/gnu-win32/software/drmingw/ にある Dr. Mingw を検討してみてください. そのツールは, 下記のように R のデバッグ情報を付けたヴァージョンを構築すると最も効果的に, エラーの原因を特定することができるでしょう.
適切なバージョンの gdb が必要でしょう: 私たちは通常, Cygwin ディストリビューションからそれを使っています. Windows の下でのデバッグはしばしば困難なプロセスになり, ときにまったく動作しないこともあります. もしもあなたが必要とするものがクラッシュを捕捉するためのジャスト・イン・タイム・デバッガーならば, http://jrfonseca.dyndns.org/projects/gnu-win32/software/drmingw/ にある Dr. Mingw を検討してみてください. そのツールは, 下記のように R のデバッグ情報を付けたバージョンを構築すると最も効果的に, エラーの原因を特定することができるでしょう.

まず, R システムのデバッグ情報を付けたヴァージョンを make します:
まず, R システムのデバッグ情報を付けたバージョンを make します:
 make clean
 make DEBUG=T
そして, あなたのパッケージのデバッグ・ヴァージョンを make します:
そして, あなたのパッケージのデバッグ・バージョンを make します:
 make pkgclean-mypkg
 make DEBUG=T pkg-mypkg
すると, つぎのコマンドによってデバッグすることができます:
 gdb /path/to/rw1080/bin/Rgui.exe

けれども, 下記の点にご注意ください:
- gdb は, directory コマンドによってソース・コードの場所を指定しないかぎり, そのソースがコンパイルされた場所で起動しないとソース・コードを見つけることができません (ソースがコンパイルされた場所は, メイン・システムについて rw1080/src/gnuwin32, パッケージについては rw1080/src/library/mypkg/src です). 最も便利な方法は, gdb を起動するディレクトリーに .gdbinit ファイルを置き, そのファイル内でデバッグしたいコードの場所のリストを (directory コマンド群で) 設定することです.

- DLL にブレイクポイントをセットするには, その DLL がロードされている必要があります. したがって, パッケージ eda 内の関数 tukeyline を検査する方法はつぎのようになるでしょう:
 gdb ../../../../bin/Rgui.exe
 (gdb) break WinMain
 (gdb) run
 [ stops with R.dll loaded ]
 (gdb) break R_ReadConsole
 (gdb) continue
 [ stops with console running ]
 (gdb) continue
 Rconsole> library(eda)
 (gdb) break tukeyline
 (gdb) clear R_ReadConsole
 (gdb) continue
Fortran のシンボルにはアンダーラインを加える必要があります.

- Windows はシグナルをほとんどサポートしていません. したがって, デバッガーの下でプログラムを実行し, そのプログラムにシグナルを送ってプログラムの実行を中断し,
デバッガーに制御を戻す, というデバッガーの通常の使い方は, mingw ヴァージョンの gdb では機能しません. cygwin ヴァージョンではしばしば機能します.
デバッガーに制御を戻す, というデバッガーの通常の使い方は, mingw バージョンの gdb では機能しません. cygwin バージョンではしばしば機能します.

** 7.5 C++ コードをインクルードするには? (How do I include C++ code?)

つぎの 2つのことをする必要があります:

(a) (extern "C" ... の形式で) R から呼び出したいシンボルをエクスポートするラッパーを書いてください.

(b) リンクの中に C++ ライブラリーをインクルードして, DLL を作ってください. X.cc にあなたの C++ コードが含まれていて, X_main.cc がラッパーだとします (「R の拡張機能を書く (Writing R Extensions)」の実行例のように). そのとき, つぎのようにして DLL を構築してください. (gcc の場合は)
 ...?bin?Rcmd SHLIB X.cc X_main.cc
あるいは (Visual C++ の場合 (拡張子 .cpp が必要です))
 cl /MT /c X.cpp X_main.cpp
 link /dll /out:X.dll /export:X_main X.obj X_main.obj
あるいは (Borland C++ の場合 (こちらも拡張子 .cpp が必要です))
 bcc32 -u- -WDE X.cpp X_main.cpp
そして, X_main と同様に, X_R の中でエントリー・ポイントを呼び出します. DLL がロードされるときに静的変数の生成 (construction) が起こり, DLL がアンロードされるとき (通常, R が終了するとき) に静的変数の破棄 (destruction) が起こるでしょう.

注意: GUI コンソール上ではこの実行例からのメッセージが見えないでしょう: つぎのセクションをご参照ください.

この実行例は, CRAN の src/contrib/Devel セクション内のパッケージ cxx_0.0-x.tar.gz に入っていて, Windows 上で通常の方法でパッケージとしてコンパイルすることができます.

** 7.6 私の C コードからの出力が消えてしまいます. なぜ? (The output from my C code disappears. Why?)

Rgui.exe コンソールは Windows アプリケーションです: stdout (標準出力) あるいは stderr (標準エラー出力) への書出しはコンソール上に出力を生じないでしょう. (これは Rterm.exe ならば機能するでしょう.) 代わりに, Rprintf あるいは REprintf を用いてください. これらはヘッダー・ファイル R_ext/PrtUtil.h の中で宣言されています.

注意: コンソールへの出力は遅れるので (「Rgui を用いるとき, コンソールへの出力が遅れるように見えるのですが. (When using Rgui the output to the console seems to be delayed.)」参照), 通常は, R プロンプトにリターンするまで出力は何も見えないでしょう.

** 7.7 私の Fortran コードからの出力が消えてしまいます. なぜ? (The output from my Fortran code disappears. Why?)

Fortran の出力は Rgui コンソールでなくファイルに書き込まれます. サブルーチン dblepr, intpr あるいは realpr のうちの 1つをご利用ください. 「R の拡張機能を書く (`Writing R Extensions')」マニュアルに記載されています.

注意: コンソールへの出力は遅れるので (「Rgui を用いるとき, コンソールへの出力が遅れるように見えるのですが. (When using Rgui the output to the console seems to be delayed.)」参照), xxxpr サブルーチンを用いるとき, 通常は, R プロンプトにリターンするまで出力は何も見えないでしょう.

** 7.8 私がコンパイルしたコードを実行すると, コンソールがフリーズします. (The console freezes when my compiled code is running.)

コンソール, ページャー, およびグラフィクス・ウィンドウはすべて R エンジンと同じスレッドで実行されます. コンソール等が Windows のイヴェントに応答できるようにするには, あなたのコンパイルしたコードから周期的に R_ProcessEvents() を呼び出してください. 出力をコンソール上で更新したい場合は, R_FlushConsole() を呼び出し, それから R_ProcessEvents() を呼び出してください.
コンソール, ページャー, およびグラフィックス・ウィンドウはすべて R エンジンと同じスレッドで実行されます. コンソール等が Windows のイベントに応答できるようにするには, あなたのコンパイルしたコードから周期的に R_ProcessEvents() を呼び出してください. 出力をコンソール上で更新したい場合は, R_FlushConsole() を呼び出し, それから R_ProcessEvents() を呼び出してください.

----


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS