[R]現在の年月日を得る
現在の年月日を得るには、Sys.Date関数を使う。
> Sys.Date()
[1] "2018-09-25"
Sys.Date関数は現在のタイムゾーンの年月日(日付)を、日付型データで得ることができる。
> mode(Sys.Date())
[1] "numeric"
> class(Sys.Date())
[1] "Date"
« 2018年8月 | トップページ | 2018年10月 »
現在の年月日を得るには、Sys.Date関数を使う。
> Sys.Date()
[1] "2018-09-25"
Sys.Date関数は現在のタイムゾーンの年月日(日付)を、日付型データで得ることができる。
> mode(Sys.Date())
[1] "numeric"
> class(Sys.Date())
[1] "Date"
ベクトルの要素の順番を逆にするには、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
NPOIとは、Visual Basic(Visual Studio)でExcel(エクセル)のファイル(xlsまたはxlsx)を読み書きするためのライブラリーである。これをVisual Basicで使えるようにするためにインストールする方法。以下は、Visual Studio Community 2017での例。NPOIはNuGetパッケージマネージャにより、パッケージ化されているので、これを使用すれば、簡単にインストールすることができる(所要時間5分程度、要インターネット回線)。
2つの文字列が同じか否かを判定(比較)するためには、比較演算子「==」(等しい)または「!=」(等しくない)を使う。
> st <- "ABC"
> if (st == "ABC") { cat("OK\n") }
OK
> if (st == "AB") { cat("OK\n") }
> if (st != "AB") { cat("OK\n") }
OK
パッケージ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")
パッケージ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