« 2015年3月 | トップページ | 2015年8月 »

2015年7月10日 (金)

[R]ベクトルの要素を繰り返したベクトルを作成する

ベクトルを複数個つなげた(連結した、繰り返した)ベクトルを作成するにはrep関数を使えばよい。

通常は「rep(ベクトル, 繰り返し回数)」とすれば、その指定のベクトルを単純に繰り返し回数だけ連結したベクトルが作成される。timesオプションに繰り返し回数を指定すれば良いが、timesオプションは明記省略が可能で、第2引数に数値を指定すればそれがtimesオプションに渡される。

一方で、指定したベクトルの要素ごとに指定回数繰り返したベクトルを作成したいときもある。その場合はeachオプションを使用する。

以下、実行例。

> # テスト用の数値型ベクトルを作成
> v <- c(1, 2, 3)
> # ベクトルを2個つなげた(繰り返した)ベクトルを作成
> rep(v, times = 2)
[1] 1 2 3 1 2 3
> # timesオプションは省略可能
> rep(v, 2)
[1] 1 2 3 1 2 3
> # 要素ごとに指定回数を繰り返したベクトルを作成
> rep(v, each = 2)
[1] 1 1 2 2 3 3

2015年7月 7日 (火)

[R]文字列の前後の空白を取り除く

文字列の空白を取り除くにはgsub関数を使う。gsub関数は正規表現を用いた文字列の置換が簡単に行え、ベクトルも扱えるため、前後の空白を検索パターン(^[ ]+|[ ]+$)にして、それを "" に置換するという処理を行う。

gsub(検索パターン, 置換パターン, 文字列ベクトル)

以下は使用例。ベクトルst1に、①空白無し文字列、②前に空白が2つ付いた文字列、③後ろに空白が2つ付いた文字列、④前後に空白が2つずつ付いた文字列、を代入し、gsub関数による1回の処理ですべての前後の空白を取り除いている。

> st1 <- c("AA", "BB  ", "  CC", "  DD  ")
> st1
[1] "AA"     "BB  "   "  CC"   "  DD  "
> st2 <- gsub("^[ ]+|[ ]+$", "", st1)
> st2
[1] "AA" "BB" "CC" "DD"

2015年7月 5日 (日)

[gfortran]Windows 8.1でFortran

MinGWを使えば、Windows 8.1で無料で使えるFortranコンパイラーが使える。

以下のページを開く。
http://www.mingw.org/wiki/msys

左側のメニュー、「Navigation」→「Downloads」をクリック。sourceforgeのページに飛ぶ。

いろいろ表示されているが、「Looking for the latest version?」とある隣の「Download mingw-get-setup.exe (86.5 kB)」をクリックして、mingw-get-setup.exeをダウンロードする。なお、これは各種プログラムをダウンロードするだけのプログラム(インストーラー)に過ぎない。

ダウンロードしたmingw-get-setup.exeを起動する。C:\MinGWにインストールしようとするので、インストーラーの指示に従ってインストールする。

デスクトップにアイコン「MinGW Installer」が作成されたはず。これをダブルクリックして、MinGW Installerを起動する。

左側のメニュー「Basic Setup」をクリックすると、右側上部にいろいろ表示されるが、「mingw32-base」、「mingw32-gcc-fortran」、「mingw32-gcc-g++」の3つのパッケージがあるはず。これを選択する(右クリックで現れたメニューから「Mark for Installation」をクリック)。

上部のメニュー「Installation」→「Apply Changes」を選択し、現れたダイアログのボタン「Apply」をクリックすると、インストールが始まる。

パスを通す。環境変数PathにC:\MinGW\binを追加する。

« 2015年3月 | トップページ | 2015年8月 »

無料ブログはココログ

■■

■■■