表紙から引用する「R 言語のセオリーを徹底解説」
p.126 の 7-1-1 コネクションの例を引用する。
> con <- file("ex.gz", "w") > cat("TITLE,extra,line", "2,3,5", "11,13,17", file = "ex2.data", sep = "\n") > close(con)
上記プログラムの説明も引用する。
この例では file 関数を用いて確立したコネクションを con オブジェクトに格納し、 それを cat 関数に渡すことで出力しています。file 関数は第1引数である description 引数にファイルパスまたは URL を指定し、 第2引数である open 引数にコネクションのオープンモードを指定することでコネクションを確立します。 cat 関数はベクトルを表示する関数です。渡したベクトルを file 引数に指定したコネクションに対して出力します。 この際、sep 引数に指定した文字列を区切り文字(セパレータ)として用います。(後略)
私が思うに、この説明は違うのではないか。というのは、cat 関数の file 引数にあるのはコネクションではなく、直接のファイルパスだからだ。 おそらく記述を表す正しいプログラムは次の通りではないか。
> con <- file("ex.gz", "w") > cat("TITLE,extra,line", "2,3,5", "11,13,17", file = con, sep = "\n") > close(con)
ちなみに、このプログラムは動作し、ex.gz にはファイルができるが、拡張子から予想されるような gzip ファイルではなく、 実際にはテキストファイル、しかも予想されるように CSV 形式のファイルが作成される。なお、本書の p.126 の最下行には、次のプログラム例がある。
> cat("TITLE,extra,line", "2,3,5", "11,13,17", file = "ex2.data", sep = "\n")
この1行だけで、コネクションの明示的な確立を省略することができるという。 記述を誤ってしまったのは、おそらくコネクションを明示する例と混乱してしまったのだろう。
p.386 から始まる「15 章 時系列解析」で、6 種類のパッケージをインストールするよう要請されている。このうち、パッケージ "Nippon" だけが、
CRAN に登録されていない。どうやら今は CRAN からアーカイブされてしまった(お蔵入りになる、という言い方でいいのか)。
どのような場面で Nippon パッケージが使われているかを本書で見てみると、
p.392 でなお、Nippon パッケージの jyear 関数を用いると西暦を和暦に変換できます。
とあるので、
西暦から和暦への変換機能を使っていることがわかる。Nippon パッケージは、本書の他の個所では使われていないようなので、
特に時系列解析にあたって大きな問題となることはないだろう。
なお、Nippon パッケージの類似機能を持つものには Zipangu パッケージがあるが、
これには本書で扱っている西暦から和暦への変換機能がない。
「23 章 多言語の利用と他言語からの利用」で、23-3 DSL の 23-3-1 Stan を見てみた。stan 関数を実行しようと思ったが、 次のエラー警告が出てくる。
WARNING: Rtools is required to build R packages, but is not currently installed. Please download and install the appropriate version of Rtools for 4.4.3 from https://cran.r-project.org/bin/windows/Rtools/. Trying to compile a simple C file Running "C:/PROGRA~1/R/R-44~1.3/bin/x64/Rcmd.exe" SHLIB foo.c system(paste(MAKE, p1(paste("-f", shQuote(makefiles))), "compilers"), でエラー: 'make' not found 呼び出し: <Anonymous> -> .shlib_internal -> system 実行が停止されました WARNING: Rtools is required to build R packages, but is not currently installed. Please download and install the appropriate version of Rtools for 4.4.3 from https://cran.r-project.org/bin/windows/Rtools/. WARNING: Rtools is required to build R packages, but is not currently installed. Please download and install Rtools 4.4 from https://cran.r-project.org/bin/windows/Rtools/. make cmd is make -f "C:/PROGRA~1/R/R-44~1.3/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-44~1.3/share/make/winshlib.mk" CXX='$(CXX17) $(CXX17STD)' CXXFLAGS='$(CXX17FLAGS)' CXXPICFLAGS='$(CXX17PICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX17LDFLAGS)' SHLIB_LD='$(SHLIB_CXX17LD)' SHLIB="file2f08114c299.dll" WIN=64 TCLBIN= OBJECTS="file2f08114c299.o" make would use 警告メッセージ: system(paste(cmd, "-n")) で: 'make' not found compileCode(f, code, language = language, verbose = verbose) でエラー: system(paste(MAKE, p1(paste("-f", shQuote(makefiles))), "compilers"), でエラー: 'make' not found 呼び出し:-> .shlib_internal -> system 実行が停止されました sink(type = "output") でエラー: コネクションが不正です
Stan を使うのは諦めよう。
書名 | パーフェクト R |
著者 | R サポーターズ |
発行日 | 2013 年 11 月 22 日 |
発行元 | 技術評論社 |
定価 | 3600 円(本体) |
サイズ | A5 変形判 |
ISBN | 978-4-7741-8812-6 |
その他 | 越谷市立図書館で借りて読む |
まりんきょ学問所 > コンピュータの部屋 > 統計活用術 > 統計・時系列の本 > R サポーターズ:パーフェクト R