« 2018年8月 | トップページ | 2018年10月 »

2018年9月27日 (木)

[R]現在の年月日を得る

現在の年月日を得るには、Sys.Date関数を使う。

> Sys.Date()
[1] "2018-09-25"

Sys.Date関数は現在のタイムゾーンの年月日(日付)を、日付型データで得ることができる。

> mode(Sys.Date())
[1] "numeric"
> class(Sys.Date())
[1] "Date"

2018年9月21日 (金)

[R]ベクトルの要素の順番を逆にする

ベクトルの要素の順番を逆にするには、rev関数を使う。

> n <- c(1, 2, 3, 5)
> rev(n)
[1] 5 3 2 1
> d <- c(1.0, NA, 3.0, 4.0)
> d
[1]  1 NA  3  4
> rev(d)
[1]  4  3 NA  1

2018年9月19日 (水)

[Visual Basic]NPOIをインストールする

NPOIとは、Visual Basic(Visual Studio)でExcel(エクセル)のファイル(xlsまたはxlsx)を読み書きするためのライブラリーである。これをVisual Basicで使えるようにするためにインストールする方法。以下は、Visual Studio Community 2017での例。NPOIはNuGetパッケージマネージャにより、パッケージ化されているので、これを使用すれば、簡単にインストールすることができる(所要時間5分程度、要インターネット回線)。

  1. Visual Studioを起動する。
  2. NPOIを使用するプロジェクトを開く。
  3. メニュー「ツール」→「NuGetパッケージマネージャー」→「パッケージマネージャーコンソール」。パッケージマネージャーコンソールのウィンドウが開く。開くまでに、「PowerShellホストを初期化しています...」と表示されて、数秒待たされるかもしれない。
  4. コマンドプロンプト「PM>」が表示されているはず。「Install-Package NPOI」と打ち込んでEnterキーを押す。インストールが始まる。依存関係情報の収集に数十秒かかるかもしれない。これでインストールされる。なお、一緒にパッケージSharpZipLibがインストールされる。
  5. メニュー「ツール」→「NuGetパッケージマネージャー」→「ソリューションのNuGetパッケージの管理」。パッケージNPOIがインストールされているのが確認できる。一緒に、パッケージSharpZipLibがインストールされていることも確認できる。

2018年9月 6日 (木)

[R]文字列の比較

2つの文字列が同じか否かを判定(比較)するためには、比較演算子「==」(等しい)または「!=」(等しくない)を使う。

> st <- "ABC"
> if (st == "ABC") { cat("OK\n") }
OK
> if (st == "AB") { cat("OK\n") }
> if (st != "AB") { cat("OK\n") }
OK

2018年9月 5日 (水)

[R]エラーメッセージ「java.lang.OutOfMemoryError: Java heap space」

パッケージxlsxを使用して、read.xlsx関数してExcelのファイルを読み込もうとすると、以下のようなエラーが発生することがある。

> library(xlsx)
> fi <- "data.xlsx"
> dtf <- read.xlsx(fi, 1, header = FALSE)
.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  でエラー:
  java.lang.OutOfMemoryError: Java heap space

原因の詳細は不明。エラーが発生するときもあればそうでないときもある。ファイルサイズの大きいxlsxファイルを読み込もうとすると、このエラーが発生しやすい。

この問題を回避するには、違うパッケージを使用すればよい。

パッケージopenxlsxを使用すると、大きいxlsxファイルを読み込んでも、エラーが発生しなくなる。。

> install.packages("openxlsx")

2018年9月 4日 (火)

[R]エラーメッセージ「.onLoad は loadNamespace()('rJava' に対する)の中で失敗しました」

パッケージxlsxを使用しようとしたときに、以下のエラーメッセージが表示されて使えないときがある。

> library(xlsx)
エラー: package or namespace load failed for ‘xlsx’:
  .onLoad は loadNamespace()('rJava' に対する)の中で失敗しました、詳細は:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry

原因はJRE(Javaの実行環境)がそのパソコンにインストールされていないため。JREをインストールすれば、使えるようになる。

Windowsの場合、インストールするJavaは、JREでもJDKでもどちらでもかまわない。32bit版でも64bit版どちらでもかまわない。Java8でもJava10どちらでもかまわない。

なお、エラーの大本は、パッケージxlsxから自動で呼び出しているパッケージrJavaがこのエラーを発生しているためである。

> library(rJava)
エラー: package or namespace load failed for ‘rJava’:
  .onLoad は loadNamespace()('rJava' に対する)の中で失敗しました、詳細は:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry

« 2018年8月 | トップページ | 2018年10月 »

無料ブログはココログ

■■

■■■